Comment copier tout le contenu d'un répertoire vers un autre répertoire en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-03-02 15:04:16
Thèmes : webmaster - php
Question

Comment copier l'intégralité du contenu d'un répertoire dans un autre répertoire en PHP ?

Réponse

Vous pouvez utiliser les fonctions PHP readdir et copy pour copier l'intégralité du contenu d'un répertoire dans un autre répertoire en PHP.

Pour copier tout le contenu d'un répertoire vers un autre répertoire en PHP, vous devez :

  • Ouvrir le dossier source et y positionner un pointeur.
  • Vérifier que le dossier de destination existe et est accessible en écriture.
  • Parcourir le dossier source de manière récursive.
  • Copier chaque fichier et dossier dans le répertoire de destination.
  • Fermer le dossier et retirer le pointeur.

Exemple de code PHP pour copier tout le contenu d'un répertoire vers un autre répertoire :

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
function copy_dir($src, $dst)
{
    $dir = opendir($src);
	if (!file_exists($dst) && !is_dir($dst)) 
	{
		mkdir($dst);       
	}
	if (!is_writable($dst))
	{
		die;
	}
    while($file = readdir($dir))
	{
        if (( $file != '.') && ($file != '..'))
		{  
            if (is_dir($src . '/' . $file))  
            {
                copy_dir($src . '/' . $file, $dst . '/' . $file);
            }  
            else 
			{  
                copy($src . '/' . $file, $dst . '/' . $file);  
            }  
        }  
    }  
    closedir($dir); 
}  
$src = "001"; 
$dst = "002"; 
copy_dir($src, $dst);
?>