Affichage des fichiers par date

Résolu
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009 - 11 juin 2008 à 12:16
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009 - 11 juin 2008 à 17:30
Bonjour tout le monde,
Je suis débutant en PHP, et je suis en train de créer un site. Mon problême: Je fais un systeme de news qui affiche sur ma page le contenu des fichiers stockés dans un dossier. Tout s'affiche correctement sauf que les fichiers s'affiche par ordre alphabétique, et moi je voudrais qu'il s'affiche en fonction de leur date de création, c'est a dire du plus récent au plus ancien...

voici mon bout de code:
function ParcourRepertoire($Chemin, $ProfondeurMax -1 , $Mode "TOUT", $P = 0)
{
   if(substr($Chemin, strlen($Chemin) - 1) != '/')
      $Chemin .= '/';
   $ListeRep = array();
   if($Mode != "FICHIERS")
      $ListeRep[] = $Chemin;
   if($handle = opendir($Chemin))
   {       while(false !($Fichier readdir($handle)))
       {
           if($Fichier != '.' && $Fichier != '..')
           {
               $Fichier = $Chemin . $Fichier;
               if(! is_dir($Fichier))
               {
                  if($Mode != "REPERTOIRES")
                     $ListeRep[] = $Fichier;
               }
               elseif($P >=0 && ($P < $ProfondeurMax || $ProfondeurMax < 0))
               {
                   $result = ParcourRepertoire($Fichier . '/', $ProfondeurMax, $Mode, $P + 1);
                   $ListeRep = array_merge($ListeRep, $result);
               }
           }
       }
       closedir($handle);
   }
   if($P == 0 )
      natcasesort($ListeRep);
   return($ListeRep);
}

/* DEBUT DU SCRIPT */

   $ListeResult = ParcourRepertoire('\dossier.');
   $TailleTab = count($ListeResult);
  
   for($i=0;$i<$TailleTab;$i++)
   {
      if(! is_dir($ListeResult[$i]))
      {
 
            /* Debut du script d'affichage du contenu du fichier */
            $fichier = file("$ListeResult[$i]"); // Nom du fichier à afficher
            $total = count($fichier); // Nombre total des lignes du fichier
       
                for($j = 0; $j < $total; $j++)
                    { // Départ de la boucle
                        echo ('                                 ----

                                '.$fichier[$j].',
                               
                               
'); // On affiche ligne par ligne le contenu du fichier
                    } // Fin de la boucle
                echo ('
----------------------------------------------------------------------------
');
            /* Fin du script d'affichage du contenu du fichier*/
      }
   }/* Fin de la boucle */

J'espere que j'ai été assez clair, et que mon code n'est pas trop brouillon.

Merci d'avance pour votre aide !!!

15 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
11 juin 2008 à 17:25
^^

Euh ... il n'y a pas de usort() dans mon code ... sinon, pour le code de malalam ... En fait, l'erreur provient du fait que $Dir n'est pas un array()

Sinon, c'est peut-être dû au fait que scandir renvoie FALSE en cas d'échec ...

if( ($aDir = scandir('.')) )
{
    usort((array) $aDir, 'sortByMtime');
}
else
{
    echo 'Erreur !';
}

<hr />Si ma reponse te convient, merci de l'accepter ! 
1
Rejoignez-nous