Der Befehl copy ("old_location/*.*","new_location/ ") ist fehlgeschlagen, weil Platzhalter (*.*) von der copy()-Funktion nicht direkt erkannt werden.
Um den Inhalt eines gesamten Verzeichnisses, einschließlich Unterverzeichnissen und Dateien, zu kopieren, eine rekursive Kopierfunktion ist notwendig. Hier ist ein Beispiel:
<code class="php">function recurseCopy(string $sourceDirectory, string $destinationDirectory, string $childFolder = ''): void { $directory = opendir($sourceDirectory); if (is_dir($destinationDirectory) === false) { mkdir($destinationDirectory); } if ($childFolder !== '') { if (is_dir("$destinationDirectory/$childFolder") === false) { mkdir("$destinationDirectory/$childFolder"); } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file"); } } closedir($directory); return; } while (($file = readdir($directory)) !== false) { if ($file === '.' || $file === '..') { continue; } if (is_dir("$sourceDirectory/$file") === true) { recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file"); } else { copy("$sourceDirectory/$file", "$destinationDirectory/$file"); } } closedir($directory); }</code>
Um diese Funktion zu verwenden, rufen Sie sie mit dem Quellverzeichnis, Zielverzeichnis und optionalem Unterordner (falls erforderlich) auf.
<code class="php">recurseCopy("old_location", "new_location");</code>
Das obige ist der detaillierte Inhalt vonWie kopiert man Verzeichnisinhalte mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!