begin process at 2012 05 31 05:15:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Ordre de listage d'un répertoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ordre de listage d'un répertoire

samedi 4 juin 2005 à 00:45:29 | Ordre de listage d'un répertoire

Evangun

Bonsoir!
j'ai trouvé la fonction suivante qui liste le contenu d'un répertoire et des sous-répertoires.
Elle marche parfaitement sous easyPHP mais le pb c'est que sur Free les fichiers ne sont plus classés par ordre alphabétique mais selon un ordre inconnu...
Est-ce que qqn a une idée du pk? et de ce qu'il faudrait changer?
c'est prêt en rapport avec listRep ou readdir mais je ne sais pas trop, surtout que je ne masterise pas encore le php  :^ p

merci d'avance



<?php
//classe "récursive" repertoire

$idclass=0;

class repertoire
{
    //propriétés
    var $id;//identifiant unique de la classe
    var $chemin;//chemin du répertoire en cours
    var $nom;//nom du répertoire en cours
    var $listRep;//tableau des classes filles (ou sous classes)
    var $listFiles;//tableau des noms + dates de modification des fichiers du répertoire en cours

    //constructeur
    function repertoire($inChemin,$inNom)
    {
        global $idclass;

        $this->id=$idclass;
       
        $this->chemin=$inChemin;
        $this->nom=$inNom;

        $idclass++;//incrémentation pour la prochaine classe

        if($inChemin!="")//déduction du chemin complet du repertoire
        {
            $fullpath=$inChemin."/".$inNom;
        }
        else
        {
            $fullpath=$inNom;
        }

        $handle=opendir($fullpath);

        $tmp=0;//var d'increment -> tableau de sous classes
        $tmp2=0;//var d'increment -> tableau de fichiers

        while ($file = readdir($handle))//création des sous classe
        {
            if (is_dir($fullpath."/".$file) && $file != "." && $file != "..")
            {
                //instanciation d'une nouvelle classe depuis cette classe
                //j'appelle ça des classes récursives :-)
                //tant qu'il y aura des sous répertoires des sous classes seront créees ...
                //ex : pour rep1/rep2/rep3 => classe1->sousclasse2->sousclasse3 etc ...
                //les unes imbriquées dans les autres :-P et accessibles avec le tableau listRep
                $this->listRep[$tmp]=new repertoire($fullpath,$file);
                $tmp++;
            }
            else if(is_file($fullpath."/".$file) && $file != "." && $file != "..")
            {
                clearstatcache();//effacement du cache (conseillé dans la doc ... donc on le fait :-)
                //liste des fichiers

                $this->listFiles[$tmp2]='<td><FONT COLOR=#ffffff><a

href="'.$fullpath.'/'.$file.'">'.$file.'</a></font></td>';
                $tmp2++;
            }
        }

        closedir($handle);
    }

    //fonction d'affichage en html
    function toString()//un peu comme le toString() en java
    {
        echo"<table border=0 border=0 cellspacing=0 cellpadding=0>
        <tr><td width=415 colspan=2 align=center><b><FONT

COLOR=#de3707>".$this->nom."</FONT></b></td></tr>\n";
        for($i=0;$i<count($this->listFiles);$i++)
        {
            echo"<tr><FONT color=#ffffff>".$this->listFiles[$i]."</FONT></tr>\n";
        }
        for($i=0;$i<count($this->listRep);$i++)
        {
            //on appelle les toString() des classes filles
            echo"<tr><td colspan=2></td></tr><tr>
                <td align=center valign=top><b><!-- <FONT COLOR=#ffffff>".$this->nom."</FONT> -

-></b></td>
                <td>";
            $this->listRep[$i]->toString();
            echo"</td>";
            echo"</tr>\n";
        }
        echo"</table><br><br>\n";
    }
}

//DEBUT

$j=0;
$path='.';

$handle=opendir($path);
//listage des repertoires du répertoire où se trouve le script
while ($file = readdir($handle))
{
    if (is_dir($file) && $file != "." && $file != "..")
    {
        $repertoire=new repertoire($path,$file);
        $repertoire->toString();
    }
}

closedir($handle);
//FIN
?>
samedi 4 juin 2005 à 09:30:03 | Re : Ordre de listage d'un répertoire

coockiesch

Réponse acceptée !
Salut!
Oui, en fait, dixit la doc php, "Les noms sont retournés dans l'ordre qu'ils sont enregistrés dans le système de fichiers."

Ce que tu peux faire c'est mettre le tout dans un tableau, le trier et travailler sur ce tableau...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
samedi 4 juin 2005 à 10:56:28 | Re : Ordre de listage d'un répertoire

Evangun

Ok merci bcp alors, je vais essayer ça!
samedi 4 juin 2005 à 12:52:39 | Re : Ordre de listage d'un répertoire

Evangun

effectivement je n'ai eu qu'à rajouter ça:
sort($this->listFiles);




Cette discussion est classée dans : répertoire, file, var, fullpath, repertoire


Répondre à ce message

Sujets en rapport avec ce message

Probleme de création et de copie de Répertoire [ par jdaviaud ] Voila, dans mon script, j'utilise les deux fonctions suivantes pour copier le contenu d'un répertoire avec creation du nouveau répertoire de destinati sous-repertoire fichier ............ [ par TRASH52 ] TRASH52bon je vous met le code!En fait, je voudrais que mon programme a partir d'u Probleme avec is_dir() et is_file [ par zhaar ] Bonjour,J'ai un repertoire avec quelques images en .jpg et des sous répertoires.Pour détecter un sous répertoire, j'utilise un is_dir() dans ma boucle Lister des fichiers [ par clive2k1 ] Salut! voilà j'ai choper qqpart un script qui permet de lister tout les fichiers d'un repertoire: $repertoire = '**nom/dossier**'; $dir = opendir($r Probleme pour mettre musique sur ma page d'accueil de mon site [ par jmauv1 ] Bonjour a tous,depuis peu je me suis lancé dans la réalisation d'un site et je veux y mettre de la musique sur ma page d'accueil.J'héberge mon propre Liste de répertoire [ par chatainsim ] Bonjour, j'utilise ce bout de code pour afficher la liste des repertoire présent avec le fichier, seulement voilà, j'aurais aimer que certain d Ouverture d'un repertoire donnée [ par fredo35m ] Bonjour, y a t il une possibilité d'ouvrir un répertoire donnée sur le serveur?Je m'explique pour l'instant dans mon formulaire j'ai mis un type=file Listage repertoire page [ par Eliays ] Bonjour voici mon code : $path = ".";$dh = opendir($path);$i=1;while (($file = readdir($dh)) !== false) {    if($file != "." && $file != ".." && $file Affichage répertoire [ par tipexx94 ] Bonjour, j'ai ce c récup données + post [ par cathy9999 ] Bonjour,a l'aide d'une fonction javascript qui permet de créer plusieurs input file pour la récup d'images, que voici : var num=0;<br /


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales