Veuillez me donner une solution pour lister tous les dossiers, sous-dossiers et fichiers d'un répertoire en utilisant php. La structure de mes dossiers est la suivante :
Répertoire principal Rép1 Sous-rép1 Fichier1 Fichier2 Sous-rép2 Fichier3 Fichier4 Rép2 Sous-rép3 Fichier5 Fichier6 Sous-rép4 Fichier7 Fichier8
Je souhaite obtenir une liste de tous les fichiers de chaque dossier.
Existe-t-il une commande de script shell en php ?
Un moyen très simple d'afficher la structure des dossiers est d'utiliser la classe
RecursiveTreeIterator(PHP 5 >= 5.3.0, PHP 7) et de générer une arborescence graphique ASCII.$it = new RecursiveTreeIterator(new RecursiveDirectoryIterator("/path/to/dir", RecursiveDirectoryIterator::SKIP_DOTS)); foreach($it as $path) { echo $path.""; }
http://php.net/manual/en/class.recursivetreeiterator.php
En utilisant
RecursiveTreeIterator::setPrefixPart更改前缀,还可以对树的 ASCII 表示进行一些控制,例如$it->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, "| ");function listFolderFiles($dir){ $ffs = scandir($dir); unset($ffs[array_search('.', $ffs, true)]); unset($ffs[array_search('..', $ffs, true)]); // prevent empty ordered elements if (count($ffs) < 1) return; echo ''; foreach($ffs as $ff){ echo '- '.$ff; if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); echo '
'; } echo '
'; } listFolderFiles('Main Dir');