Page 1 sur 1

[Script] Problème au niveau de l'affichage par ordre alphabé

Posté : 16 août 2009, 17:57
par Relik
Salut !!

Voila, je vous expose un petit problème que je rencontre en se moment.

Je voudrais afficher le contenu d'un dossier qui contient des images, j'y suis arriver, mais pas par ordre alphabétique, je penser que la fonction sort() trier justement par ordre alphabétique, mais en fait je crois qu'elle trie simplement en fonction de l'affichage des fichiers dans le dossier sur le serveur.

J'ai donc chercher une autre fonction, natcasesort() me semblez la mieux, mais sans fausse erreur, je pense que natcasesort() trie les fichiers quand ils ont un titre numérique(exemple: doubleur1.png; doubleur2.png)
Voila, je ne sais pas si je me suis bien exprimé. :s

Sinon, voici le script:

Code : Tout sélectionner

<?php include('haut_page.php'); $i = 0; echo '<center>'; if($handle = opendir('images/doubleurs')) { while ($false != ($file = readdir($handle))) { $ListFiles[$i]=$file; $i++; } closedir($handle); if (count($ListFiles)!=0) { ksort($ListFiles); } $i = 0; while ($i < count($ListFiles)) { echo '<img src="images/doubleurs/'.$ListFiles[$i].'" /><br />'; $i++; } } echo '</center>'; include('bas_page.php'); ?>
Voila, je vous remercie d'avance et vous souhaite une excellente journée ! :)

Re: [Script] Problème au niveau de l'affichage par ordre alphabé

Posté : 16 août 2009, 19:56
par AB
Salut !!

Voila, je vous expose un petit problème que je rencontre en se moment.

Je voudrais afficher le contenu d'un dossier qui contient des images, j'y suis arriver, mais pas par ordre alphabétique, je penser que la fonction sort() trier justement par ordre alphabétique, mais en fait je crois qu'elle trie simplement en fonction de l'affichage des fichiers dans le dossier sur le serveur.

J'ai donc chercher une autre fonction, natcasesort() me semblez la mieux, mais sans fausse erreur, je pense que natcasesort() trie les fichiers quand ils ont un titre numérique(exemple: doubleur1.png; doubleur2.png)
Voila, je ne sais pas si je me suis bien exprimé. :s

Sinon, voici le script:
<?php include('haut_page.php');
	$i = 0;
	echo '<center>';
	if($handle = opendir('images/doubleurs')) {
	while ($false != ($file = readdir($handle))) {
		$ListFiles[$i]=$file;
		$i++;
		}
	closedir($handle);
	if (count($ListFiles)!=0) {
		ksort($ListFiles);
		}
	$i = 0;
	while ($i < count($ListFiles)) {
		echo '<img src="images/doubleurs/'.$ListFiles[$i].'" /><br />';
		$i++;
		}
	}
	echo '</center>';
	include('bas_page.php'); ?>
Voila, je vous remercie d'avance et vous souhaite une excellente journée ! :)
Là, en l'occurrence tu ne trie rien du tout puisque tu utilises ksort qui trie un tableau suivant ses clés, et dans ton code les clés sont crées par incrémentation de $i, elle sont donc forcément ordonnées dans l'ordre où elles sont lues dans le dossier.

On peut faire comme ceci :
 
  $dossier = 'images/doubleurs';

  $ListFiles = array();

  if($handle = opendir($dossier)) 
 {

  while ($fichier = readdir($handle)) 
      {
      if ($fichier != "." && $fichier != "..") $ListFiles[] = $fichier;
      }

  closedir($handle);

  natcasesort($ListFiles);
 }


//...

if (count($ListFiles) > 0)
{ 
   echo '<div style="text-align:center">';

   foreach($ListFiles as $files) echo '<img src="'.$dossier.'/'.$files.'" /><br />';

   echo '</div>';
}