Copier un dossier et tout son contenu

Soyez le premier à donner votre avis sur cette source.

Snippet vu 41 841 fois - Téléchargée 7 fois

Contenu du snippet

<?php 
// copie le contenu du repertoire $orig vers le repertoire $dest en le créant 
// copie tous les sous-reps de manière récursive 
// sous-entend qu'on a les droits d'écriture, bien sûr! 
function CopieRep ($orig,$dest) { 
   
  mkdir ($dest,0777); // à modifier si le rep cible existe déjà
  $dir = dir($orig); 
  while ($entry=$dir->read()) { 
    $pathOrig = "$orig/$entry"; 
    $pathDest = "$dest/$entry"; 
    // repertoire ->copie récursive
    if (is_dir($pathOrig) and (substr($entry,0,1)<>'.')) CopieRep ($pathOrig,$pathDest);     
   // fichier -> copie simple
   if (is_file($pathOrig) and ($pathDest<>'') and ($fp=fopen($pathOrig,'rb'))) { 
      $buf = fread($fp,filesize($pathOrig)); 
      $cop = fopen($pathDest,'ab+'); 
      fputs ($cop,$buf); 
      fclose ($cop); 
      fclose ($fp); 
    } 
  } 
  $dir->close(); 
} 
?> 
Remarque : 
Je n'avais pas trouvé cette fonction écrite de manière simple, alors je l'ai faite. Marche très bien sur le site dont je m'occupe. Pas essayée en PHP3 et 5, mais je ne pense pas qu'il y ait un problème, vue la simplicité du code. 


Compatibilité : PHP 3, PHP 4, PHP 5

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.