Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1548 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Lister tous les sous-repertoires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lister tous les sous-repertoires

n°1326913
i'n'i
Posté le 16-03-2006 à 19:07:48  profilanswer
 

Salut,
quelqu'un peut-il m'indiquer le code d'une fonction qui prend en parametre un nom de repertoire et qui me remplit un tableau de chaine de caratère correspondant au noms complet (pas relatif) de TOUS les sous-repertoires (et sous-sous-repertoire,...) du nom de repertoire absolu? car je ne vois pas comment dire à ma boucle, tant qu'il y a des repertoires,...
 
Merci beaucoup ;)

mood
Publicité
Posté le 16-03-2006 à 19:07:48  profilanswer
 

n°1326946
Woutcha
Posté le 16-03-2006 à 19:43:44  profilanswer
 

i'n'i a écrit :

Salut,
quelqu'un peut-il m'indiquer le code d'une fonction qui prend en parametre un nom de repertoire et qui me remplit un tableau de chaine de caratère correspondant au noms complet (pas relatif) de TOUS les sous-repertoires (et sous-sous-repertoire,...) du nom de repertoire absolu? car je ne vois pas comment dire à ma boucle, tant qu'il y a des repertoires,...
 
Merci beaucoup ;)


 
Voici une chtite fonction qui devrait t'aider... a toi eventuellement de la modifier pour avoir des chemins relatifs ou absolus.
Sinon le principe pour exprimer le fameux "tant qu'il y a des repertoires" c'est d'utiliser la recursion (la fonction s'appelle elle-meme).
 

Code :
  1. <?
  2. function find_dirs($dir) {
  3.    $dir_list = array();
  4.    if($objs = glob($dir."/*" )){
  5.        foreach($objs as $obj) {
  6.            if(is_dir($obj)) {
  7.                $dir_list[] = $obj;             
  8.                $dir_list = array_merge($dir_list, find_dirs($obj));                                     
  9.            }
  10.        }
  11.    }
  12.    return $dir_list;
  13. }
  14. $dir = find_dirs('nom_du_repertoire');
  15. print_r($dir);
  16. ?>


Message édité par Woutcha le 16-03-2006 à 19:44:35
n°1326971
i'n'i
Posté le 16-03-2006 à 20:48:32  profilanswer
 

Merci bien, je vais tester ça !

n°1326985
i'n'i
Posté le 16-03-2006 à 21:16:45  profilanswer
 

ok, la fonction marche bien mais 2 petits soucis :
 
1) Les repertoires sont de la forme /repertoireParent//ssrep1   /repertoireParent//ssrep2   /repertoireParent//ssrep3
Il y a 2 slash entre le repertoire parent et les sous-repertoires!
Que faut-il modifier dans la fonction?
 
2) print_r($dir) m'affiche mes repertoires comme ceci : [0] => rep0 [1] => rep1 [2] => rep2
Comment fait-on pour n'avoir une liste que des repertoires, pour y travailler dessus après? Dans une boucle par exemple
foreach( ??? )
 {
echo $rep
}
 
Merci.

n°1326988
i'n'i
Posté le 16-03-2006 à 21:21:23  profilanswer
 

oups! Le probleme du double slash est réglé : c'est que je rentrait mon repertoire parent avec un slash à la fin dans mon formulaire.
 
Il reste donc cette question :  
print_r($dir) m'affiche mes repertoires comme ceci : [0] => rep0 [1] => rep1 [2] => rep2  
comment fait-on pour n'avoir une liste que des repertoires, pour y travailler dessus après? Dans une boucle par exemple  
foreach( ??? )  
 {  
echo $rep  
}  
 
Merci ;)

n°1326999
Woutcha
Posté le 16-03-2006 à 21:40:28  profilanswer
 

i'n'i a écrit :

oups! Le probleme du double slash est réglé : c'est que je rentrait mon repertoire parent avec un slash à la fin dans mon formulaire.
 
Il reste donc cette question :  
print_r($dir) m'affiche mes repertoires comme ceci : [0] => rep0 [1] => rep1 [2] => rep2  
comment fait-on pour n'avoir une liste que des repertoires, pour y travailler dessus après? Dans une boucle par exemple  
foreach( ??? )  
 {  
echo $rep  
}  
 
Merci ;)


 
En fait print_r est juste la pour l'exemple. (c'est une fonction pour afficher tres sommairement n'import quel "objet" php).
 
Le tableau qui contient tes repertoires est le tableau retourne par la fonction. ($dir dans l'exemple).
 
Pour parcourir ton tableau tu n'as qu'a faire une simple boucle (foreach($dir as $key => $value){ print $value;})
N'hesite pas a consulter la doc php concernant les tableaux...

n°1327002
i'n'i
Posté le 16-03-2006 à 21:50:42  profilanswer
 

Nickel merci, c'est ce que je voulais :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Lister tous les sous-repertoires

 

Sujets relatifs
Besoin d'aide pour lister contenu d'un dossier[VBS] Lister groupes et Utilisateurs dans AD
[.bat] Lister les 4 derniers fichiers[PHP] Faire un menu en fonction des repertoires
[PHP]Lister les checkbox d'un formulaireCopier des repertoires et fichiers sur un reseau
lister tous les id déclarer dans une page html en jsLister les DSN (odbc) dispo sous windows en PHP
[BATCH] Lister les fichiers d'un dossierVBA Excel - Enregistrer un document dans 2 répertoires différents
Plus de sujets relatifs à : Lister tous les sous-repertoires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR