Lister les fichiers dossiers

Petit nouveau ! | 2 Messages

17 mai 2019, 14:41

Bonjour à tous,
je suis en train de faire un script qui devra comparer la date de dépôt de fichiers ou dossiers sur un ftp avec une date antérieure récupérée dans un fichier texte unixtime).

Mon soucis est que si le script parcours bien tous les fichiers, j'ai ma variable $derniere_date qui se vide en cours de boucle, je me retrouve avec une valeur qui passe au 1/1/70 en cours d'exécution

Cela semble venir d'une mauvaise utilisation de ma part de la fonction.

Si quelqu'un à une idée ?

Code : Tout sélectionner

<?php // Ouverture du fichier dans lequel il y a la date et l'heure de la dernière éxecution $monfichier = fopen('scriptexec.txt', 'r+'); // lecture de la première la première ligne du fichier qui contient la date de la dernière exécution $derniere_date = fgets($monfichier); echo date('d/m/Y H:i:s', $derniere_date); echo "\n"; // insère la dernière date d'exécution du fichier fseek($monfichier, 0); // On remet le curseur au début du fichier fputs($monfichier, time()); // écriture de la dernière date d'exécution fclose($monfichier); // fin des manipulations du fichier, il est fermé //echo time(); $tab_fichiers=array(); function liste_rep($src_dir,&$derniere_date) { $dir = opendir($src_dir); while($nom = readdir($dir)) { if ($nom!="." && $nom!="..") { $chemin=$src_dir . "/" . $nom; if ($chemin) { echo ($chemin)."<br>"; echo "->".date('d/m/Y H:i:s', filemtime($chemin))."\n"; echo "=>".date('d/m/Y H:i:s', $derniere_date)."\n"; liste_rep($chemin); } } } closedir($dir); } $src_dir = "."; liste_rep($src_dir,$derniere_date); ?>

Petit nouveau ! | 2 Messages

17 mai 2019, 14:53

J'ai trouvé, comme la fonction est rappelée, j'ai oublié d'intégrer la variable $derniere_date à nouveau dans le 2eme appel. Le code suivant fonctionne très bien.

Code : Tout sélectionner

<?php [b]function liste_rep($src_dir,$derniere_date) {[/b] $dir = opendir($src_dir); while($nom = readdir($dir)) { if ($nom!="." && $nom!="..") { $chemin=$src_dir . "/" . $nom; if ($chemin) { echo ($chemin)."<br>"; echo "->".date('d/m/Y H:i:s', filemtime($chemin))."\n"; echo "->".date('d/m/Y H:i:s', $derniere_date)."\n"; [b]liste_rep($chemin,$derniere_date);[/b] } } } closedir($dir); } // Ouverture du fichier dans lequel il y a la date et l'heure de la dernière éxecution $monfichier = fopen('scriptexec.txt', 'r+'); // lecture de la première la première ligne du fichier qui contient la date de la dernière exécution $derniere_date = fgets($monfichier); echo date('d/m/Y H:i:s', $derniere_date); echo "\n"; // insère la dernière date d'exécution du fichier fseek($monfichier, 0); // On remet le curseur au début du fichier fputs($monfichier, time()); // écriture de la dernière date d'exécution fclose($monfichier); // fin des manipulations du fichier, il est fermé //echo time(); $tab_fichiers=array(); $src_dir = "."; liste_rep($src_dir,$derniere_date); ?>