Bonjour à tous
J'ai un script qui copie un dosier vers un emplacement spécifique, je voudrai que le dossier soit renommer une fois copier, quelqu"un saurait-il m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 <?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 ('Corps_IN', 'Model'); // 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 ?>
Partager