Salinan arahan ("old_location/*.*","new_location/ ") gagal kerana kad bebas (*.*) tidak dikenali secara langsung oleh fungsi copy().
Untuk menyalin kandungan keseluruhan direktori, termasuk subdirektori dan fail, fungsi salinan rekursif diperlukan. Berikut ialah contoh:
<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>
Untuk menggunakan fungsi ini, panggilnya dengan direktori sumber, direktori destinasi dan subfolder pilihan (jika perlu).
<code class="php">recurseCopy("old_location", "new_location");</code>
Atas ialah kandungan terperinci Bagaimana untuk Menyalin Kandungan Direktori Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!