mettre les images de mon script par ordre alphabetique

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

mettre les images de mon script par ordre alphabetique

Message le Lun Oct 13, 2008 10:08

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: Tout sélectionner

<?


$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);
         
         
          ?>




spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Mer Oct 15, 2008 11:07

up


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Oct 15, 2008 15:23

tu dois mettre le resultat dans un tableau et ensuite lister le tableau

print_r("$ListFiles");

Code: Tout sélectionner
// tri par ordre decroissant
  $list_tri = 'DESC';
  if(count($ListFiles)!=0)   {
     if($list_tri == 'DESC')   {
         rsort($ListFiles);
     }
     else   {
         sort($ListFiles);
     }
  }


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Mer Oct 22, 2008 9:53

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: Tout sélectionner

<?

$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);

?>



KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Oct 22, 2008 12:48

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.


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Jeu Oct 23, 2008 9:26

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


e-kiwi
Modérateur
Modérateur
 
Messages: 13818
Inscription: Mar Déc 23, 2003 9:04

Message le Jeu Oct 23, 2008 9:46

pourquoi tu ne fais pas un glob() ?


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Jeu Oct 23, 2008 10:06

à quel niveau et dans quel interet ?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5074
Inscription: Mer Nov 23, 2005 10:38

Message le Jeu Oct 23, 2008 10:11

spidermas a écrit:à quel niveau et dans quel interet ?


Pour récupérer la liste de tes images de manière plus simple :-) : http://fr.php.net/glob


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Jeu Oct 23, 2008 10:16

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: Tout sélectionner
$rien[] = $Fichier;
natsort($rien);
foreach ($rien as $rien2);
print("$rien2");



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



question : pourquoi le natsort ne fonctionne t-il pas ? :(


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Oct 23, 2008 12:10

sort() devrait suffir pour un simple trie par ordre alphabétique


spidermas
WRInaute impliqué
WRInaute impliqué
 
Messages: 258
Inscription: Lun Jan 10, 2005 12:13

Message le Ven Oct 24, 2008 6:17

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


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité