[PHP] Listing de fichier, trier par date

Listing de fichier, trier par date [PHP] - PHP - Programmation

Marsh Posté le 10-08-2009 à 04:05:28    

Bonjour a tous
 
Je chercher a faire une petite page pour lister les fichier d'un dossier, le tout trier par la dernière date de modification.
J'ai presque tout, sauf que le tri ne prend pas en compte l'heure de modification.
Voici le code que j'ai pour l'instant :

Code :
  1. $rep=opendir('.');
  2. $i=0;
  3. while ($file = readdir($rep)){
  4. if($file != '..' && $file !='.' && $file !=''){
  5.  if (is_file($file)){
  6.   $nom[]=$file;
  7.   $date[]=date("d/m/Y - h:i:s",filemtime($file));
  8.   $tab[$date[$i]]=$nom[$i];
  9.   ksort($tab);
  10.   $i++;
  11.  }
  12. }
  13. }
  14. foreach ($tab as $key => $val)
  15. {
  16. print "<tr><td>".$val."</td><td>".$key."</tr></tr>";
  17. }
  18. closedir($rep);


et voici mon resultat :

Citation :


Fichier Last Mod
test1.txt 10/08/2009 - 03:25:08
listefic.php 10/08/2009 - 04:01:44
nico.php 30/07/2009 - 05:29:33


 
Comme vous le voyez, les 2 premières lignes sont pas trier dans le bon ordre.
J'ai beau chercher je trouve pas comment faire.
 
Help plz.
Thx


Message édité par chico008 le 10-08-2009 à 04:05:37

---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 10-08-2009 à 04:05:28   

Reply

Marsh Posté le 10-08-2009 à 14:01:57    

Si tu veux dejà trier en fonction des jours, ne pas mettre d/m/Y car ça va mal les trier, il y aura les meme jours de chaque mois ensembles...
 
Je viens de tester avec Y/m/d, ça fonctionne bien, ça ordonne du plus ancien au plus récent et en tenant compte des heures.
 

Copie de update_apec.php - 2009/02/18 - 12:36:51
update_apec.php~ - 2009/02/20 - 04:46:45
routine_apec.log - 2009/02/23 - 03:55:56
update_apec.php - 2009/02/23 - 06:26:30
test.php~ - 2009/08/10 - 01:47:50
Copie de test.php - 2009/08/10 - 01:52:52
test.php - 2009/08/10 - 01:53:22


 
Ensuite, tu peux sortir le ksort de la boucle et ne l'exécuter qu'un fois quand elle est terminée.
 
Le résultat que tu obtiens est tout à fait normal. Le 10 est avant le 30 et 03:25 avant 04:01.

Reply

Marsh Posté le 10-08-2009 à 18:02:29    

effectivement, j'y avais pas penser.
Merci, je vais essayer ca.


---------------
Serveur HFR - OpenTTD
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed