Forum Clubic

Lister un dossier ?

Bonsoir,

j’aurais voulu savoir comment faire, en php, pour afficher les fichiers et les trier par date de modification ?

Ca serait top si on pouvait lister tous les fichiers dans tous les dossiers. Mais comment faire ?

Exemple :

Dossier de base
–fichier1
–fichier2
–dossier1
±-fichierX
±-fichierY
–dossier2
±-fichierZ

Donnerai une liste tel que celle ci, classée par date :
fichier1 - 2009
fichierX - 2008
fichierY - 2005
fichier2 - 2003
fichierZ - 1999

Merci d’avance ! :slight_smile:

Bonjour,

Il me semble qu’en php tu peux exécuter des commandes systemes avec l’instruction du même nom :
system ( )

Après ce n’est pas trop recommandé pour des raisons de sécurité et par défaut c’est désactivé de Php si je me souviens bien.
Il reste à savoir sur quel OS tu compte l’utiliser.

php.net…
+
www.php.net…

Merci jbou pour tes liens, m’enfin ça au pire … C’est pas comme si je savais pas faire, j’ai besoin de savoir comment trier par date, …

Pour le moment, j’ai un code semblable à celui-ci :


<html>
<head>
</head>
<body>
<?php
function aff($Fichiers) {
  $date = array();
  foreach($Fichiers as $fichier) {
    $date[$fichier] = filemtime($fichier);
  }
  array_multisort($date, SORT_DESC);
  foreach($date as $fichier => $date) {
    echo $date.' -- '.$fichier.'<br />';
  }
}
function scan($rep) {
  $dir = opendir($rep);
  $Fichiers = array();
  if($dir) {
    while (false !== ($f = readdir($dir))) {
      if(is_file($rep.$f)) {
	    $Fichiers[] = $rep.$f;
      }
      if(is_dir($rep.$f) && $f!=".." && $f!="." ) {
        $new_dir=realpath($rep.$f);
		scan("$new_dir/");
      }
    }
  }
  aff($Fichiers);
}

scan("./");
?>
</body>
</html>

Hors, j’ai le tableau n’est pas trié, je ne sais pas quoi utiliser à la place de

 array_multisort($date, SORT_DESC);

pour que mon tableau soit enfin trié en fonction du timestamp …

Merci de votre aide.