mettre les images de mon script par ordre alphabetique

WRInaute discret
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);
			 
			 
			 ?>
 
WRInaute accro
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);
     }
  }
 
WRInaute discret
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);

?>
 
WRInaute accro
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.
 
WRInaute discret
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
 
WRInaute discret
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 ? :(
 
Discussions similaires
Haut