Ordre in-alphabétique avec readdir

Petit nouveau ! | 4 Messages

31 mai 2011, 19:23

Bonjour, j'ai un script avec la fonction readdir pour afficher toutes les images d'un dossier. Quand je teste le script, tout marche parfaitement, mais les images sont affichées dans l'ordre alphabétique.
Je voudrais savoir comment faire pour que mes images soient affichées dans l'ordre inverse de l'alphabet.

Voici moi script :
<?php
$urlphoto = "http://monsite.fr/creation"; // url du fichier qui contient les images

$nomRepertoire = "creation"; // nom du répertoire qui contient les images
if (is_dir($nomRepertoire))
	{
	$dossier = opendir($nomRepertoire);
	while ($Fichier = readdir($dossier))
	{
	if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp')))
		{
		echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
		echo '<img src="', $urlphoto, '/',$Fichier, '">';
		echo ' alt="creation de membre"</a>&nbsp;';
		}
	}    
	closedir($dossier);
	}
	else
		{
		echo' Le répertoire spécifié n\'existe pas';
		}
?>
Merci d'avance, Clément :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 mai 2011, 20:07

salut,

le plus simple est de mettre tous les éléments dans un tableau et ensuite d'utiliser array_reverse et tu fait l'affichage avec foreach ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

31 mai 2011, 22:45

Merci, tu m'as mis sur la voie :
J'ai trouvé un script que j'ai adapté à mes besoins
<?php
$dir_nom = 'creation'; // dossier listé
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // ouvre le contenu du dossier
$fichier= array(); // déclare le tableau contenant le nom des fichiers

while($element = readdir($dir)) {
	if($element != '.' && $element != '..') {
		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
		else {$dossier[] = $element;}
	}
}
closedir($dir);

if(!empty($fichier)){
	rsort($fichier); // sort=tri croissant, rsort=tri décroissant
		foreach($fichier as $lien) {
			echo "<a href=\"$dir_nom/$lien \"><img src=\"$dir_nom/$lien \" alt=\"creation de membre\" /></a>";
		}
 }
?>
Merci encore ! :D