PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Encore un problème de tri / lecture multi rep ok / ordre photo bizarre » 15-01-2010 15:57:30

oké. merci kris..
je prend note et maintenant que tu me le dis, ça me parait évident ! ^_^
j'ai trouvé une autre façon sur alsacréations a adapter évidement
si ça peut aider qqun...
autant partager , merci à heyoan !


class listFiles {
 
    private $extension    = '';            // extension des fichiers à lister
    private $current_path    = '';        // chemin du répertoire en cours
    private $dirs_in_dir    = array();    // tableau des répertoires d'un répertoire
    private $files_in_dir    = array();    // tableau des fichiers d'un répertoire
 
    public function listFiles($Path = '.', $extension = 'jpg') {
        $this->extension = $extension;
        $this->listDirs($Path);
    }
    private function listDirs($Current_Path) {
        $this->current_path = $Current_Path;
        $this->dirs_in_dir = array();
        $this->files_in_dir = array();
        if ($handle = opendir($Current_Path)) {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    $path = $Current_Path.'/'.$file;
                    if (is_dir($path)) {
                        $this->dirs_in_dir[]=$path;
                    } else {
                        // Est-ce que c'est la bonne extension ?
                        $pathinfo = pathinfo($file);
                        if ($pathinfo['extension'] == $this->extension) {
                            $this->files_in_dir[]=$file;
                        }
                    }
                }
            }
        }
        closedir($handle);
        $this->display();
    }
 
    private function display() {
        $nb_files = count($this->files_in_dir) > 0;
        $nb_dirs  = count($this->dirs_in_dir) > 0;
        if($nb_files || $nb_dirs) {
            echo '<ul>'."\n";
            // Si des fichiers existent...
            if($nb_files) {
                $this->displayFiles();
            }
            // Si des dossiers existent...
            if($nb_dirs) {
                $this->displayDirs();
            }
            echo '</ul>'."\n";
        }
    }
 
    private function displayFiles() {
        sort($this->files_in_dir);  
        foreach ($this->files_in_dir as $file) {
            $href = $this->current_path.'/'.$file;
            echo '<li><a href="'.$href.'">'.$file.'</a></li>'."\n";
        }
    }
 
 
    private function displayDirs() {
        // Tri inverse
        rsort($this->dirs_in_dir);
        foreach ($this->dirs_in_dir as $dir) {
            echo '<li><h2 class="title">'.substr(strrchr($dir, "/"), 1).'</h2>';
            $this->listDirs($dir);
            echo '</li>'."\n";
        }
    }
}
 
//new listFiles();
//new listFiles('repert');
//new listFiles('repert1/repert2');
//new listFiles('repert1/repert2', 'ext');
new listFiles('include/images', 'jpg');
 


Néanmoins j'aurai bien aimé savoir comment m'y prendre sur l'autre bout de code
un peu moins indigeste...

#2 Re : Forum Général PHP » Encore un problème de tri / lecture multi rep ok / ordre photo bizarre » 15-01-2010 15:57:30

je l'ai placé ici un peu par dépit je l'avoue...

je me suis trompé de fichier source
rhaaa
je modifie mon message...

#3 Forum Général PHP » Encore un problème de tri / lecture multi rep ok / ordre photo bizarre » 15-01-2010 15:57:30

twixtop
Réponses : 4

Bonjour par ici !
fraichement inscrit je m'empresse de vous demander de l'aide !
:)
j'essaye actuellement de lister des lots d'images depuis différents répertoires.
tant qu'il y a des fiches je recupère le titre, le texte, et les images donc.

je voudrai afficher ces images par ordre alphabétique
sachant que les noms de mes images sont a chaque fois de ce type :
01-zulu.jpg
02-boite.jpg
03-affiche.jpg
04-....
05-etc

la fonction qui marche (j'ai bien toutes mes images) mais le natcasesort() n'y change rien
j'ai essayé de le déplacer mais je me perd rapidemment
tout s'affiche un peu comme ça vient.. ^_^


/*function qui affiche des trucs à partir d autres trucs*/
function affiche_repfile($rep){
      //if ($handle = opendir($rep))
      if ($handle = opendir('images/PICTURES/'.$rep.''))
      {
        while (false !== ($file = readdir($handle)))
        {
             if ($file != '.' && $file != '..' && strrchr($file,".")=='.jpg')
             {
          $narray[$i]=$file;
          $i++;
           echo "<a><span class=\"more-icon\"> </span><span class=\"less-icon\"> </span><img src=\"images/PICTURES/".$rep.$file."\" width=\"594\" height=\"420\" alt=\"".$val['alt']."\" class=\"slideimg\" /></a>\n";
            }
        }
        closedir($handle);  
      }else{ echo'erreur lecture rep';}
      sort($narray);
//return $narray;
}

 

et mon while :


  <div class="thumbs">
  <?php // tant qu'il y a des fiches
  while ($val = mysql_fetch_array($result))
{
    $rep = $val['repertoire'];
    // affiche un champ
    echo '<div class="oneref loading" id="l'.$val['numba'].'">
    <div class="sidebar"><h1>'
.$val['titre'].'</h1>
    <p>'
.$val['description'].'</p>
    </div>
      <div class="vizu">'
;
      affiche_repfile($rep);
    echo '</div>';//vizu
    echo '</div>';//oneref
} ?>               
</div><!--thumbs-->
 

quelqu'un à une idée du pourquoi du comment ?
merci d'avance pour vos pistes...

Pied de page des forums

Propulsé par FluxBB