Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2008, 15h09   #1
Membre habitué
 
Inscription : novembre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 440
Points : 134
Points : 134
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 :
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 :
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
Prosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h15   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Tu peux utiliser la fonction http://php.net/is_file pour garder uniquement les fichiers
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h24   #3
Membre habitué
 
Inscription : novembre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 440
Points : 134
Points : 134
En fait mon problème se trouve dans le parcours à travers tous les répertoires et sous répertoires.
Prosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 17h02   #4
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
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...
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 18h19   #5
Membre du Club
 
Étudiant
Inscription : décembre 2007
Messages : 44
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 44
Points : 45
Points : 45
Envoyer un message via MSN à Taka-kun
Bonsoir,


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

Code :
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 :
1
2
3
4
 
<?php
echo get_tree('upload/');
?>
Et tu auras quelque chose dans ce genre

Code :
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/
Taka-kun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 20h39   #6
Membre habitué
 
Inscription : novembre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 440
Points : 134
Points : 134
Super merci j'ai adapté ta solution à ce que j'avais besoin!
Prosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h00.


 
 
 
 
Partenaires

Hébergement Web