Affichage liste dossiers par ordre ALPHABETIQUE [Résolu]

Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
10 mars 2014
- - Dernière réponse : 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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
3
Merci
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 !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Statut
Membre
Dernière intervention
10 mars 2014
2
0
Merci
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++
Commenter la réponse de mailliam