Soyez le premier à donner votre avis sur cette source.
Snippet vu 27 215 fois - Téléchargée 27 fois
<?php function create_tab ($dir) { // fonction creant le tableau contenant les repertoires et fichiers $dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire if (is_dir ($dir)) // si c'est un repertoire $dh = opendir ($dir); // on l'ouvre else { echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide exit; } while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire if ($file !== '.' && $file !== '..') { // no comment $path =$dir.'/'.$file; // construction d'un joli chemin... if (is_dir ($path)) { //si on tombe sur un sous-repertoire $tableau[$dir]['dir'][] = $path; $tabTmp = create_tab ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire if (is_array ($tabTmp) && is_array ($tableau)) $tableau = array_merge ($tableau, $tabTmp); } else $tableau[$dir]['file'][] = $path; } } closedir ($dh); // on ferme le repertoire courant if (isset ($tableau)) { return $tableau; } } function copier_rep ($destination, $reps, $tableau_dir = array ()) { // fonction pour copier repertoire : on cree un repertoire de meme nom, puis on va chercher les fichiers, et on les copie. Si il y a des sous repertoires, appel recursif. if (empty ($tableau_dir)) { echo 'Entrée'; $tableau_dir = create_tab ($reps); } if (!is_array ($reps)) { $reps = array ($reps); } foreach ($reps as $rep) { if (!is_dir ($destination.'/'.basename ($rep))) { mkdir ($destination.'/'.basename ($rep)); if (!empty ($tableau_dir[$rep]['file']) && isset($tableau_dir[$rep]['file']) && is_array ($tableau_dir[$rep]['file'])) { foreach ($tableau_dir[$rep]['file'] as $fichier) { copy ($fichier, $destination.'/'.basename ($rep).'/'.basename ($fichier)); } } if (!empty ($tableau_dir[$rep]['dir']) && isset ($tableau_dir[$rep]['dir']) && is_array ($tableau_dir[$rep]['dir'])) { copier_rep ($destination.'/'.basename ($rep), $tableau_dir[$rep]['dir'], $tableau_dir); } } } } copier_rep ('test', 'test2'); // 1er paramètre : le répertoire de destination sous forme d'une chaine // 2d paramètre : le répertoire à copier sous forme d'une chaine ou d'un tableau ?>
j'ai besoin une methode ou un programme
Pour déterminer la taille de la copie d'un fichier vers le flash disque. voila mon Email: Bmsalah@gmail.com
et merci à tous
evitez de me cité la fonction rename(), elle n'est pas adéquate dans mon cas de figure.
3 réponses sur d'autres forums, il sont rendu le code 3 fois plus rapide
Problème résolut merci quand même.
Cordialement,
je suis arriver a modifier cette ligne par celle ci mais je n'arrive pas encore pour les sous-répertoire
copy ($fichier, $destination.'/'.basename ($rep).'/'.basename ($fichier));
copy ($fichier, $destination.'/'.basename ($fichier));
Merci d'avance
il est super votre script,
comment copier le contenue d'un répertoire juste son contenue. ?
copier_rep ('doss1', 'doss2');
je voudrais que doss1 doss1/*.* contenue de doss2
est non doss1 doss1/doss2/*.* contenue de doss2
Merci d'avance
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.