mettre les images de mon script par ordre alphabetique

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par spidermas, 13 Octobre 2008.

  1. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    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);
    			 
    			 
    			 ?>
    
    
    
     
  2. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
  3. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    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);
         }
      }
    
     
  4. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    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);
    
    ?>
    
    
     
  5. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    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.
     
  6. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    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
     
  7. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    pourquoi tu ne fais pas un glob() ?
     
  8. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    à quel niveau et dans quel interet ?
     
  9. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 978
    J'aime reçus:
    121
    Pour récupérer la liste de tes images de manière plus simple :) : http://fr.php.net/glob
     
  10. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    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 ? :(
     
  11. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    sort() devrait suffir pour un simple trie par ordre alphabétique
     
  12. spidermas
    spidermas WRInaute discret
    Inscrit:
    10 Janvier 2005
    Messages:
    198
    J'aime reçus:
    0
    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
     
Chargement...
Similar Threads - mettre images script Forum Date
mettre une date d'expiration de cache sur des images Développement d'un site Web ou d'une appli mobile 8 Janvier 2010
Google vient de mettre à jour son index "Images" ! YouTube, Google Images et Google Maps 30 Mars 2005
Faut-il mettre en noindex follow sa pagination ? Référencement Google Vendredi à 11:31
Ancre pour Sommaire de page comment les mettre en forme? Débuter en référencement 24 Février 2022
Où faut-il mettre les commandes spéciales de Google ? Débuter en référencement 21 Décembre 2021
dans un site python (Django) ce qu'on doit mettre dans le disallow Débuter en référencement 8 Novembre 2021
Mettre du texte entre les h2 et les h3 Rédaction web et référencement 20 Octobre 2021
Mettre tout les mots de son titre dans l'url? Rédaction web et référencement 16 Septembre 2021
Impossible de mettre à jour mes articles comment faire? Débuter en référencement 25 Août 2021
Mettre plusieurs fois les mêmes itemprop dans un itemscope Débuter en référencement 21 Mai 2021
Mettre un itemprop="name" ou itemprop="url" sans avoir de itemscope ou itemtype ? Débuter en référencement 13 Avril 2021
Astuce Cahier des charges pour mettre un presta en sous domaine. Développement d'un site Web ou d'une appli mobile 12 Avril 2021
Lien d'affiliation Amazon : mettre nofollow ou sponsored ? Monétisation d'un site web 25 Février 2021
WordPress Mettre les pages catégories en NOINDEX ? Débuter en référencement 25 Août 2020
WordPress Balise title: où mettre le H1 ? Débuter en référencement 30 Mai 2020
Campagne Google Ads : mettre en veille ou réduire le budget ? AdWords 19 Avril 2020
AMP stories : quelle stratégie SEO mettre en place ? Référencement Google 12 Mars 2020
Ne pas mettre à jour forum Phpbb Administration d'un site Web 19 Février 2020
Mettre une vidéo sur plusieurs pages, pénalisant en SEO ? (duplicate) Débuter en référencement 9 Février 2020
Mettre des url canoniques dans une usine à sites déjà bien indexée ? Référencement Google 7 Février 2020