Affichage liste dossiers par ordre ALPHABETIQUE [Résolu]

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

Votre réponse

2 réponses

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

Merci cod57 3

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

Codes Sources a aidé 104 internautes ce mois-ci

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.