Copier un dossier et ces sous dossiers en PHP
ven, 6 aoû, 2010
Sous PHP il manque parfois des fonctions très utiles comme pour copier un dossier avec tout son contenu.
Voici une petite fonction que j'utilise pour contourner ce manque :
<?php function copy_dir ($dir2copy,$dir_paste) { // On vérifie si $dir2copy est un dossier if (is_dir($dir2copy)) { // Si oui, on l'ouvre if ($dh = opendir($dir2copy)) { // On liste les dossiers et fichiers de $dir2copy while (($file = readdir($dh)) !== false) { // Si le dossier dans lequel on veut coller n'existe pas, on le créé if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777); // S'il s'agit d'un dossier, on relance la fonction récursive if(is_dir($dir2copy.$file) && $file != '..' && $file != '.') copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' ); // S'il sagit d'un fichier, on le copue simplement elseif($file != '..' && $file != '.') copy ( $dir2copy.$file , $dir_paste.$file ); } // On ferme $dir2copy closedir($dh); } } } ?>

