Affichage liste dossiers par ordre ALPHABETIQUE

Résolu
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 - 19 mai 2011 à 16:01
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 - 20 mai 2011 à 20:32
Ello tous!

Voilà moi je me sers du code suivant pour lister les dossiers d'un répertoire sur mon serveur.
Seulement ils ne s'affiche pas par ordre alphabétique ces ***

je fais une boucle while($p= readdir($dir)) pour connaître les dossiers
($p=les dossiers) et je pense que c'est ici que je devrais changer ma façon de faire

<?php
// Dossier en cours
$curdir = @$_GET["dir"];
if(!$curdir) $curdir = ".";
//echo " Dossier ".$curdir." 

\n";
$num  = "1";

// LISTE DES DOSSIERS COURANTS
$dir = opendir($curdir);
// on scanne le répertoire
while($p=readdir($dir)) {
 // si c'est un dossier sauf . (current directory)
 if(is_dir($curdir."/".$p)&&($p!=".")) {
  // si c'est le dossier .. (parent directory)
  if($p=="..") {
  // si ce n'est pas dans le dossier racine
   if($curdir!=".") {
   // lien vers le dossier parent
   $tmp = strrpos($curdir,"/");
   echo "Parent Directory
\n";
   }
  // sinon, lien vers le dossier
  } else {
    ?>
    <form method="post" action="gestionnaire1.php" name="form<?php echo $num ?>">
    ">
    
    .submit()">
    </form>
    <?php
  }
 }
$num++;
}
closedir($dir);
?>


Si qqun à une idée je serais heureux

2 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
19 mai 2011 à 16:36
bonjour
chez moi ils sont dans l'ordre bref ...
tu peux faire autrement
une idée
a++

<?php
// Dossier en cours
$curdir =  @$_GET["dir"];
if(!$curdir) $curdir = ".";
//echo " Dossier ".$curdir." 

\n";
$num  = "1";

// LISTE DES DOSSIERS COURANTS
$dir = opendir($curdir);
// on scanne le répertoire


/*tu peux faire des filtres*/
while($p1[]=readdir($dir)) {
asort($p1);
//ksort($p1);
//rsort($p1); ...
}

echo '';
print_r($p1);
echo '

';

//while($p=readdir($dir))
foreach($p1 as $k => $p)
 {
 // si c'est un dossier sauf . (current directory)
 if(is_dir($curdir."/".$p)&&($p!=".")) {
  // si c'est le dossier .. (parent directory)
  if($p=="..") {
  // si ce n'est pas dans le dossier racine
   if($curdir!=".") {
   // lien vers le dossier parent
   $tmp = strrpos($curdir,"/");
   echo "Parent Directory
\n";
   }
  // sinon, lien vers le dossier
  } else {
    ?>
    <form method="post" action="gestionnaire1.php" name="form<?php echo $num ?>">
    ">
    
    .submit()">
    </form>
    <?php
  }
 }
$num++;
}
closedir($dir);
?>






Bonne programmation !
3
mailliam Messages postés 261 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 10 mars 2014 3
20 mai 2011 à 20:32
Excellent ca marche!! t'es trop fort

je connaissais pas la fonction asort, ksort..

Chez toi ils sont dans l'ordre, en fait les dossiers apparaissaient dans l'ordre de créations, si j'ajoutais un dossier il apparaissait en fin de liste..

Merci bcp en tout cas!
A++
0
Rejoignez-nous