mettre les images de mon script par ordre alphabetique

bonjour a tous

Le but de se script est d'afficher une image aleatoire pour chaque dossier contenue sur le serveur

se bout de code appartient à une galerie que je suis en train de faire.

Le probleme etant que je n'arrive pas a placer mon natsort afin que les dossiers representés par une image aleatoire soit mis par ordre alphabetique

merci d'assayer de m'aider a regler se probleme

Code:
<?


$adresse="./";
$dossier= opendir($adresse);

while ($Fichier = readdir($dossier))
{

     if ($Fichier != "." && $Fichier != ".." && $Fichier != "templates" && $Fichier != "images" && $Fichier != "_images" && $Fichier != "commentaires" && $Fichier != "votes" && $Fichier != "basic" && $Fichier != "test" && is_dir($Fichier)) // Filtre anti-point ! 
     {
     $ordre[] = $Fichier;    
	 
                             
                                                                                       
$imgpath = "$Fichier/miniatures/"; // chemins des images
$textalter = "$Fichier"; // texte alternatif de l'image (attribut alt)
$urlplop = "$Fichier.html";




$max_caracteres=14;
$textalter2 = "$textalter";
// Test si la longueur du texte dépasse la limite
if (strlen($textalter2)>$max_caracteres)
{    
// Séléction du maximum de caractères 
$textalter2 = substr($textalter2, 0, $max_caracteres);
    
     
// Ajout des "..." 
$textalter2 = $textalter2."...";
}


                                                                               
                                                                                                                                                  
                                                                                       
$nodir = 0;
if ($imgpath == ".." || $imgpath == "." || $imgpath == "")
{
        $nodir = 1;
        $imgpath = ".";
}
                                                                                
                                                                                       
$j = strlen($imgpath);
$j--;
if ($imgpath[$j] != '/' && $imgpath != ".")
        $imgpath .= '/';
                                                                                
                                                                                       
if (is_dir($imgpath))
{
                                                                                
                                                                                       
        if ($condir = opendir($imgpath))
        {
                $i = 0;
                while (($curfile = readdir($condir)) != false)
                {
                        $extension = "";
                        $extension = preg_replace("/.+\.(.{3,4})/", "$1", $curfile);
                        if ($extension == "png" || $extension == "gif" || $extension == "bmp" || $extension == "jpeg" || $extension == "jpg")
                        {
                                $i++;
                                $images{$i} = $curfile;
                        }
                }
       natsort ($ordre);                                                                         
                                                                                       
                if ($images{1} == "")
                {
                        echo "Aucunes images dans le dossier !";
                }
                else
                {
                    
						$i = rand(1, $i);
                       $image = $images{$i};
			
 
             { 
			

                        echo "
					
						<div class=\"float\"><a href=\"".$urlplop."\"><img src=\"";
                        if ($nodir != 1)
                                echo $imgpath;
                        echo "".$image."\" alt=\"".$textalter."\" width=106 height=80 border=0 />
						<p>".ucfirst($textalter2)."</p><a/></div>";
						
                }
				}
        }
        else
        {
                echo "
				<a href=\"".$urlplop."\"><img src=\"http://www.wallpapers-fond-ecran.info/blanc.jpg\" alt=\"galerie\" width=\"106\" height=\"80\" border=\"0\" /></a>
				
				";
        }
}
else
{
        echo "<div class=\"float\">
		<a href=\"".$urlplop."\"><img src=\"http://www.wallpapers-fond-ecran.info/blanc.jpg\" alt=\"galerie\" width=\"106\" height=\"80\" border=\"0\" /><p>".$textalter2."</p><a/></div>
		";
}

     }
}
closedir($dossier);
			 
			 
			 ?>
 
tu dois mettre le resultat dans un tableau et ensuite lister le tableau

print_r("$ListFiles");

Code:
// tri par ordre decroissant
  $list_tri = 'DESC';
  if(count($ListFiles)!=0)   {
     if($list_tri == 'DESC')   {
         rsort($ListFiles);
     }
     else   {
         sort($ListFiles);
     }
  }
 
j'ai essayer de modif avec array mais sa affiche en boucle le meme repertoire

par exemple si j'ai 5 repertoires a b c d e

a l'affichage j'ai 5 fois le repertoire e :(

voila le nouveau code si quelqu'un peut m'aider je suis preneur

Code:
<? 

$plopabc = array();
$adresse="./";
$dossier= opendir($adresse);
$list_tri = 'DESC';
while ($Fichier = readdir($dossier))
{

     if ($Fichier != "." && $Fichier != ".." && $Fichier != "templates" && $Fichier != "images" && $Fichier != "_images" && $Fichier != "commentaires" && $Fichier != "votes" && $Fichier != "basic" && $Fichier != "test" && is_dir($Fichier)) // Filtre anti-point ! 
     {
	
    $plopabc[] = $Fichier;    
	
natsort($plopabc);
foreach($plopabc as $vac)	
	                                                                        
$imgpath = "$vac/miniatures/"; // chemins des images
$textalter = "$vac"; // texte alternatif de l'image (attribut alt)
$urlplop = "$vac.html";



$max_caracteres=14;
$textalter2 = "$textalter";
// Test si la longueur du texte dépasse la limite
if (strlen($textalter2)>$max_caracteres)
{    
// Séléction du maximum de caractères 
$textalter2 = substr($textalter2, 0, $max_caracteres);
    
     
// Ajout des "..." 
$textalter2 = $textalter2."...";
}
                                                                            
                                                                                       
/*
+--------------+
| Programme |
+--------------+
*/
                                                                                
                                                                                       
$nodir = 0;
if ($imgpath == ".." || $imgpath == "." || $imgpath == "")
{
        $nodir = 1;
        $imgpath = ".";
}
                                                                                
                                                                                       
$j = strlen($imgpath);
$j--;
if ($imgpath[$j] != '/' && $imgpath != ".")
        $imgpath .= '/';
                                                                                
                                                                                       
if (is_dir($imgpath))
{
                                                                                
                                                                                       
        if ($condir = opendir($imgpath))
        {
                $i = 0;
                while (($curfile = readdir($condir)) != false)
                {
                        $extension = "";
                        $extension = preg_replace("/.+\.(.{3,4})/", "$1", $curfile);
                        if ($extension == "png" || $extension == "gif" || $extension == "bmp" || $extension == "jpeg" || $extension == "jpg")
                        {
                                $i++;
                                $images{$i} = $curfile;
                        }
                }
                                                                                
                                                                                       
                if ($images{1} == "")
                {
                        echo "Aucunes images dans le dossier !";
                }
                else
                {
                    
						$i = rand(1, $i);
                       $image = $images{$i};
			
 
             { 



                        echo "
					
						<div class=\"float\"><a href=\"".$urlplop."\"><img src=\"";
                        if ($nodir != 1)
                                echo $imgpath;
                        echo "".$image."\" alt=\"".$textalter."\" width=106 height=80 border=0 />
						<p>".ucfirst($textalter2)."</p><a/></div>";
						
                }
				}
        }
        else
        {
                echo "
				<a href=\"".$urlplop."\"><img src=\"http://www.wallpapers-fond-ecran.info/blanc.jpg\" alt=\"galerie\" width=\"106\" height=\"80\" border=\"0\" /></a>
				
				";
        }
}
else
{
        echo "<div class=\"float\">
		<a href=\"".$urlplop."\"><img src=\"http://www.wallpapers-fond-ecran.info/blanc.jpg\" alt=\"galerie\" width=\"106\" height=\"80\" border=\"0\" /><p>".$textalter2."</p><a/></div>
		";
}

     }
}
closedir($dossier);

?>
 
stocke proprement le resultat de ton code dans un tableau.
au lieu de faire des sorties écran (echo) tu stockes:
$tableau[] = $images{$i};
tu test -> print_r()
car c'est à partir de ce tableau que tu pourras reconstruire ta sortie écran. Les fonctions sur les tableaux sont multiples.
 
ok je vais voir se que je peut faire avec un tableau mais le probleme se situe au niveau de l'affichage des repertoires qui sont representés par une image

en effet, si il y a 5 dossiers nommés a b c d e, seul le premier sera affiché 5 fois

en gros je me retrouve avc 5 fois le dossier a au lieu d'un de chaque
 
c'est la liste des repertoires que je cherche a ranger par ordre alphabetique

quoiqu'il en soit la j'avance un peu j'ai juste un leger probleme imcomprehesible


j'explique :

$Fichier etant la liste des repertoires

ce bout de code affiche a a a a a
Code:
$rien[] = $Fichier;
natsort($rien);
foreach ($rien as $rien2);
print("$rien2");


ce bout de code affiche a b c d e dans le desordre
Code:
$rien[] = $Fichier;
foreach ($rien as $rien2);
print("$rien2");


question : pourquoi le natsort ne fonctionne t-il pas ? :(
 
sort() marche pas non plus :(

je vais devenir fou avec se bout de code

il ny a pourtant pas de probleme de syntaxe c'est etrange
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut