Maison > Article > développement back-end > Comment copier le contenu d’un répertoire à l’aide de PHP ?
La commande copy ("old_location/*.*", new_location/ ") a échoué car les caractères génériques (*.*) ne sont pas reconnus directement par la fonction copy().
Pour copier le contenu d'un répertoire entier, y compris les sous-répertoires et les fichiers, une fonction de copie récursive est nécessaire. Voici un exemple :
<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>
Pour utiliser cette fonction, appelez-la avec le répertoire source, le répertoire de destination et le sous-dossier facultatif (si nécessaire).
<code class="php">recurseCopy("old_location", "new_location");</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!