Heim > Artikel > Backend-Entwicklung > Wie kopiere ich ein ganzes Verzeichnis rekursiv mit PHP?
So kopieren Sie ein gesamtes Verzeichnis rekursiv mit PHP
Das Kopieren des gesamten Inhalts eines Verzeichnisses an einen anderen Ort kann eine häufige Aufgabe in PHP sein Programmierung. Während die Kopierfunktion für eine flache Verzeichnisstruktur verwendet werden kann, kann es beim Umgang mit mehreren Verzeichnisebenen zu Einschränkungen kommen.
Dave fragte, wie man den Inhalt eines Verzeichnisses mit copy ("old_location/*. *","new_location/"), aber der bereitgestellte Code gibt einen Fehler aus, der besagt, dass der Stream nicht gefunden werden kann und *.* nicht gefunden wird.
Eine Lösung, die dieses Problem behebt, ist die Verwendung einer rekursiven Funktion wie die folgende:
<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>
Durch die Verwendung von Rekursion kann diese Funktion die Verzeichnisstruktur durchlaufen und bei Bedarf untergeordnete Verzeichnisse erstellen. Es überprüft den Dateityp für jedes Element im Verzeichnis und ruft sich rekursiv auf, um nach Bedarf Dateien zu kopieren oder Verzeichnisse zu erstellen.
Das obige ist der detaillierte Inhalt vonWie kopiere ich ein ganzes Verzeichnis rekursiv mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!