ordre alphabetique en local mais pas en ligne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ordre alphabetique en local mais pas en ligne

par Invité » 04 mars 2007, 11:30

comment fait on aussi pour trier par filemtime. Je suppose que la solution se trouve là :

while ($galerie = readdir($dir))
{
$table_rep[]=$dossier;
}

j'ai essayé plusieurs codes sans succès :cry:

par Marilyne » 18 nov. 2006, 00:14

et bien on utilise : arsort() :D

par Marilyne » 18 nov. 2006, 00:12

Et si je veux trier dans l'ordre décroissant comment fait on ? :oops:

par sasg » 23 mai 2006, 17:47

merci beaucoup jpaul de ton aide si precieuse :D

par jpaul » 23 mai 2006, 16:58

Oups :oops: excuses, essayes :
$table_rep[]=$dossier;
Ca construit un tableau dynamiquement (affectation auto des indexes)...

par sasg » 23 mai 2006, 16:33

$rep = "./appart";

$dos = scandir($rep);

//maintenant on trie le tableau $table_rep
sort($dos);
print_r($dos);
//ensuite on applique le reste du traitement
foreach($dos as $dossier) {
   if ($dossier !="." && $dossier != "..")
   {
     if(is_dir($rep."/".$dossier))
     {
      echo '<a href="par_page.php?dir='.$dossier.'&page=0">'.$dossier.'</a>';
        echo ' <br>';  
     }
   }
}
ceci fonctionne en local mais pas en ligne car la fonction scandir est du php5 et que free ne l'est pas (PHP Version 4.4.3-dev)

par sasg » 23 mai 2006, 16:02

j'ai 2 erreurs
Warning: sort() expects parameter 1 to be array, string given in F:\www\wamp\www\Nouveau dossier\list_dosssier_menu.php on line 14
toilette
Warning: Invalid argument supplied for foreach() in F:\www\wamp\www\Nouveau dossier\list_dosssier_menu.php on line 17
// IL faut d'abord mettre le contenu du répertoire dans un tableau.
$rep = "./appart";
$dir = opendir($rep);

while ($dossier = readdir($dir))
{
$table_rep=$dossier;
}
closedir($dir);
//maintenat on trie le tableau $table_rep
sort($table_rep);                                          //ligne 14
print ($table_rep);
//ensuite on applique le reste du traitement
foreach($table_rep as $dossier) {                          //ligne 17
   if ($dossier !="." && $dossier != "..")
   {
     if(is_dir($rep."/".$dossier))
     {
      echo '<a href="par_page.php?dir='.$dossier.'&page=0">'.$dossier.'</a>';
        echo ' <br>';  
     }
   }
}
pour creer un tableau c'st pas plutot un truc du genre
$table_rep=array ($dossier);
j'ai essaye comme ca mais ca fonctionne pas :(

par jpaul » 23 mai 2006, 15:06

Bon alors j'essaye mais je n'ai pas le temps de tester :

Le script d'origine :
$rep = "./appart";
$dir = opendir($rep);

while ($dossier = readdir($dir))
{
   if ($dossier !="." && $dossier != "..")
   {
     if(is_dir($rep."/".$dossier))
     {
      echo '<a href="par_page.php?dir='.$dossier.'&page=0">'.$dossier.'</a>';
        echo ' <br>';  
     }
   }
}
closedir($dir);
// IL faut d'abord mettre le contenu du répertoire dans un tableau.
$rep = "./appart";
$dir = opendir($rep);

while ($dossier = readdir($dir))
{
$table_rep=$dossier;
}
closedir($dir);
//maintenant on trie le tableau $table_rep
sort($table_rep);
//ensuite on applique le reste du traitement
foreach($table_rep as $dossier) {
   if ($dossier !="." && $dossier != "..")
   {
     if(is_dir($rep."/".$dossier))
     {
      echo '<a href="par_page.php?dir='.$dossier.'&page=0">'.$dossier.'</a>';
        echo ' <br>';  
     }
   }
}
L'idée est là mais, sans tests, il y a peut être avec quelques erreurs aussi ;)

par sasg » 23 mai 2006, 12:53

merci mais ca changerai quoi dans mon code je n'arrive pas le faire :?

par jpaul » 23 mai 2006, 11:32

Je pense que la fonction readdir() liste le contenu du répertoire dans l'ordre de la création des éléments.

Pour les lister dans l'ordre alphabétque, tu peux les ranger dans un tableau et faire un tri (sort()) de ce tableau.

ordre alphabetique en local mais pas en ligne

par sasg » 23 mai 2006, 10:08

bonjour,

avec ce script:
$rep = "./appart";
$dir = opendir($rep);

while ($dossier = readdir($dir))
 {
   if ($dossier !="." && $dossier != "..")
   {
     if(is_dir($rep."/".$dossier)) 
     {
      echo '<a href="par_page.php?dir='.$dossier.'&page=0">'.$dossier.'</a>';
  	  echo ' <br>';  
     }
   }
 }
closedir($dir);
mon menu en local est par ordre alphabetique mais pas en ligne chez free. :roll:

ca me pose pas vraiment de probleme que mon menu soit pas par ordre alphabetique mais j'aimerais savoir surtout pourquoi :?:
Car plus tard ca pourrait me poser des problemes pour d'autres scripts...

et comment dans ce cas-ci je pourrai resoudre ce problème :?:

Merci de toute l'aide que vous m'apporterez! :)