IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Parcours récursif des répertoires


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut Parcours récursif des répertoires
    Bonjour

    J'essaie depuis 2 jours avec plusieurs tuto et documentations mais je n'y arrive pas.

    J'ai besoin de faire une fonction qui affichera tous les fichiers qui se trouve dans une arborescence de fichiers et dossiers. Exemple d'arborescence:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /site/
    /site/index.php
    /site/login.php
    /site/texte.php
    /site/css/
    /site/css/feuilles.css
    /site/inc/
    /site/inc/functions.inc.php
    /site/inc/functions.inc.php
    /site/inc/classes/
    /site/inc/classes/db.class.php
    /site/inc/classes/info.class.php
    Ma fonction doit afficher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /site/index.php
    /site/login.php
    /site/texte.php
    /site/css/feuilles.css
    /site/inc/functions.inc.php
    /site/inc/functions.inc.php
    /site/inc/classes/db.class.php
    /site/inc/classes/info.class.php
    donc tous les fichiers avec leurs path mais pas les dossiers...

    Comment faire?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 438
    Points : 15 812
    Points
    15 812
    Par défaut
    Tu peux utiliser la fonction http://php.net/is_file pour garder uniquement les fichiers

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut
    En fait mon problème se trouve dans le parcours à travers tous les répertoires et sous répertoires.

  4. #4
    Membre averti Avatar de johweb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 382
    Points
    382
    Par défaut
    Fais une fonction qui parcourt le contenu d'un répertoire (avec le nom de répertoire en paramêtre).
    Indices :
    -opendir
    -readdir
    -closedir
    Si un élément trouvé est un fichier, tu l'affiches.
    Si un élément trouvé est un dossier, tu appelles ta fonction avec ce nouveau répertoire en paramêtre...

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Bonsoir,


    j'avais déjà eu à faire ça par le passé. Voici une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    function get_tree($path = './')
    {
            if (substr($path,-1) !== '/')
                    $path .= '/';
            $tree = '';
            $dirs = glob($path.'*');
            foreach ($dirs as $value)
            {
                    if(is_dir($value))
                            $tree .= "\n".$value.'/'.get_tree($value.'/');
            }
            return $tree;
    }
    ?>
    Par exemple si tu l'utilises en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo get_tree('upload/');
    ?>
    Et tu auras quelque chose dans ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    upload/autres/
    upload/images/
    upload/pdf/
    upload/pdf/fyg/
    upload/pdf/ghu/
    upload/pdf/ghu/se/
    upload/pdf/ghu/yfg/
    upload/pdf/ghu/yfg/ok/
    upload/pdf/ok/

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut
    Super merci j'ai adapté ta solution à ce que j'avais besoin!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcours récursif de répertoires
    Par Ardtecho dans le forum Scilab
    Réponses: 8
    Dernier message: 23/03/2011, 15h26
  2. [Virtual Pascal] Parcours récursif de répertoires
    Par Alcatîz dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 16/11/2010, 22h56
  3. Scan récursif des répertoire, ça ne liste pas tout
    Par panthere noire dans le forum C++
    Réponses: 0
    Dernier message: 14/04/2009, 02h58
  4. Réponses: 1
    Dernier message: 10/11/2008, 17h38
  5. Empêcher le parcours des répertoires
    Par Tankian dans le forum Sécurité
    Réponses: 5
    Dernier message: 04/03/2005, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo