[Système] Récursivité et itération
Voila, je me suis un peu creusé la tête pour trouver comment lister les dossiers, sous dossiers, sous sous dossiers, etc. Et j'ai trouvé: J'ai utilisé une fonction récurcive:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function listeLesDossiers($d)
{
$monDossier = opendir($d);
$ch = $d.'/';
printf('%s<br />', $ch);
while($tmp = readdir($monDossier))
{
if($tmp != '..' && $tmp != '.' && is_dir($ch.$tmp))
listeLesDossiers($ch.$tmp);
}
return;
} |
sous unix, il faut l'appeller qu'une seule fois:
Code:
listeLesDossiers('/Répertoire qu'un veut lister'); //ou
Si on veut lister tout le système de fichier (déconseillé pour raison de
sécurité et de temps d'exécution)
Code:
listeLesDossiers('');
sous windows dans une boucle cemme celle là:
Code:
1 2 3 4 5 6 7 8 9
|
for($lecteur = 'A'; $lecteur <= 'Z'; $lecteur++)
{
$chemin = $lecteur.':';
if(is_dir($chemin))
{
listeLesDossiers($chemin);
}
} |
J'espère que ca pourra aider. J'essayerai de mettre d'autres exemples de fonction récurcives si je suis confronté à ce cas de figure.