Résolu [PHP]Triez un tableau par ordre alphabétique

Solutions (5)
Tags :
  • Array
  • Php
  • Serveur
  • Programmation
, Maître Yoda |
Bonjour a tous.
Sur mon site j'affiche toutes les images d'un dossier.
Quand je test en local, les images sont bien affiché par ordre alphabétique comme je le souhaite, mais une fois mis sur mon serveur, les images s'affiche aléatoirement...
Dans un premier temps je voudrais savoir s'il existe des fonctions de tri par ordre alphabétique déjà faite ?!
J'ai essayé avec les fonctions usort, sort... mais cela ne fonctionne pas.

Voici le code qui me permet d'afficher mes images :

  1. <?php
  2.  
  3. $session =& JFactory::getSession();
  4. $bouton = $session->get('bouton');
  5.  
  6. $ListFiles = array();
  7.  
  8. // url du fichier qui contient les images
  9. $urlphoto = "./Appli/images/positions/petit";
  10. // nom du répertoire qui contient les petites images
  11. $nomRepertoire = "./Appli/images/positions/petit";
  12.  
  13. if (is_dir($nomRepertoire))
  14. {
  15. $dossier = opendir($nomRepertoire);
  16. $i = 0;
  17. while ($Fichier = readdir($dossier))
  18. {
  19. if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
  20. {
  21. urlencode($Fichier);
  22. $ListFiles[$i]=$Fichier;
  23. }
  24. natcasesort($ListFiles); // Ne fonctionne pas
  25.  
  26. $j=0;
  27. while ( $j < count($ListFiles))
  28. {
  29. echo '<a href="index.php?option=com_jumi&fileid=7&Itemid=8&source='.urlencode($ListFiles[$j]).'&numero='.$bouton.'" /><img style="border:1px solid #00FFFF;" src="'.$nomRepertoire.'/'.$ListFiles[$j].'" /></a>';
  30. $j++;
  31. }
  32. }
  33. closedir($dossier);
  34.  
  35. }
  36. else
  37. {
  38. echo " Le répertoire spécifié n'existe pas";
  39. }
  40. ?>


Pourriez vous m'aider ?

Je vous remercie par avance.
Contenus similaires
Meilleure solution
partage
|
Au temps pour moi, une accolade fermante au mauvais endroit:
  1. <?php
  2. $session =& JFactory::getSession();
  3. $bouton = $session->get('bouton');
  4. $ListFiles = array();
  5. // url du fichier qui contient les images
  6. $urlphoto = "./Appli/images/positions/petit";
  7. // nom du répertoire qui contient les petites images
  8. $nomRepertoire = "./Appli/images/positions/petit";
  9. if (is_dir($nomRepertoire))
  10. {
  11. $dossier = opendir($nomRepertoire);
  12. while ($Fichier = readdir($dossier))
  13. {
  14. if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
  15. {
  16. $ListFiles[]=urlencode($Fichier);
  17. }
  18. }
  19. closedir($dossier);
  20. asort($ListFiles);
  21. foreach ($ListFiles as $image)
  22. {
  23. echo '<a href="index.php?option=com_jumi&fileid=7&Itemid=8&source='.$image.'&numero='.$bouton.'" /><img style="border:1px solid #00FFFF;" src="'.$nomRepertoire.'/'.$image.'" /></a>'; // Attention $bouton est inconnu !
  24. }
  25. } else {
  26. echo " Le répertoire spécifié n'existe pas";
  27. }
  28. ?>
  • Commenter cette solution |
Score
0
òh
òi
, Maître Yoda |
Yeeeeaaaaaah Merci beaucoup cela marche niquel en plus, mes images sont bien dans l'ordre souhaité =)
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
Meilleure réponse sélectionnée par danydan01.
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
Merci beaucoup crazycat@idn pour ta réponse =)
Mais j'ai une erreur à la ligne 12 de ton code, et plus précisément sur le readdir...
Citation :
Warning: readdir(): 106 is not a valid Directory resource


Et je ne voie pas du tout d’où proviens cette erreur ?!
  • Commenter cette réponse |
Score
0
òh
òi
|
C'est normal, tu forces un index numérique sur le tableau que tu génères et tu n'utilises pas asort (tri sur les valeurs)
  1. <?php
  2. $session =& JFactory::getSession();
  3. $bouton = $session->get('bouton');
  4. $ListFiles = array();
  5. // url du fichier qui contient les images
  6. $urlphoto = "./Appli/images/positions/petit";
  7. // nom du répertoire qui contient les petites images
  8. $nomRepertoire = "./Appli/images/positions/petit";
  9. if (is_dir($nomRepertoire))
  10. {
  11. $dossier = opendir($nomRepertoire);
  12. while ($Fichier = readdir($dossier))
  13. {
  14. if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
  15. {
  16. $ListFiles[]=urlencode($Fichier);
  17. }
  18. closedir($dossier);
  19. asort($ListFiles);
  20. foreach ($ListFiles as $image)
  21. {
  22. echo '<a href="index.php?option=com_jumi&fileid=7&Itemid=8&source='.$image.'&numero='.$bouton.'" /><img style="border:1px solid #00FFFF;" src="'.$nomRepertoire.'/'.$image.'" /></a>'; // Attention $bouton est inconnu !
  23. }
  24. }
  25. } else {
  26. echo " Le répertoire spécifié n'existe pas";
  27. }
  28. ?>



Petit edit: je vais vérifier, mais je pense que la fonction glob() serait plus pratique pour toi, d'autant qu'elle fait un tri alphabétique par défaut.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS