comment afficher les dossiers et sous-dossiers de dir en PHP
J'essaie de me faire une liste avec des dossiers et sous-dossiers, j'ai le texte suivant qui me permet d'obtenir les dossiers et sous-dossiers, mais j'ai besoin d'être triés comme l'e.g ci-dessous, j'ai essayé mais je ne sais pas comment je pourrais contourner.
Root/
Root/Images
Root/Images/UserImages
Root/Text/
Root/Text/User1/
Root/Text/User1/Folder2
mais au monent de son affichage comme ceci
Root/css/
tree/css/
js/
images/
CODE PHP:
function ListFolder($path)
{
$dir_handle = @opendir($path) or die("Unable to open $path");
//Leave only the lastest folder name
$dirname = end(explode("/", $path));
//display the target folder.
echo ("$dirname/");
while (false !== ($file = readdir($dir_handle)))
{
if($file!="." && $file!="..")
{
if (is_dir($path."/".$file))
{
//Display a list of sub folders.
ListFolder($path."/".$file);
echo "<br>";
}
}
}
//closing the directory
closedir($dir_handle);
}
ListFolder("../");
Merci
double possible d'au moins PHP SPL RecursiveDirectoryIterator RecursiveIteratorIterator de la récupération de la totalité de l'arbre
OriginalL'auteur Rickstar | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
Recueillir les noms de répertoire dans un tableau au lieu de
echo
ing direct. Utilisationsort
sur le tableau et unforeach
-boucle pour imprimer la liste.Ainsi, au lieu de
echo ("$dirname/");
vous utilisez$dirnames[] = $dirname;
($dirnames mondiale et l'initialiser avant votre premier appel de "ListFolder"). Puis, après le récursive exécuter de "ListFolder", vous feriez exécutersort($dirnames);
et puis quelque chose comme ça pour la sortie:OriginalL'auteur Select0r
vous pouvez obtenir ce que vous voulez avec le DirectoryIterator ou mieux le RecursiveDirectoryIterator de la php SPL.
voici un exemple rapide sur la façon d'utiliser ceci:
Cela devrait faire l'affaire. Bonne chance 😉
is_dir()
et attraper leUnexpectedValueException
jetés parRecursiveDirectoryIterator
si$dir
n'est pas un répertoire, celui-ci va vérifier le répertoire de toute façon. Vous pouvez également envelopper les itérateurs dans unParentIterator
, lister les répertoires, et de renoncer à laisFile()
condition.oui, vous avez raison, je pourrais et devrais le faire, mais ici, j'essayais juste de lui montrer un exemple rapide. merci!
OriginalL'auteur misterjinx
avec ce code, vous obtiendrez la listes avec des sous-répertoires (mais définir votre foldername)
OriginalL'auteur T.Todua