Maison >développement back-end >tutoriel php >Comment puis-je lister tous les fichiers d'un répertoire, y compris les sous-répertoires, en utilisant PHP ?

Comment puis-je lister tous les fichiers d'un répertoire, y compris les sous-répertoires, en utilisant PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 16:18:03357parcourir

How can I list all files in a directory, including subdirectories, using PHP?

Liste de tous les fichiers, y compris les sous-répertoires, en PHP

Si vous souhaitez répertorier tous les fichiers d'un répertoire, y compris ceux des sous-répertoires, PHP offre une solution pratique .

Pour ce faire, vous pouvez utiliser une combinaison de RecursiveDirectoryIterator et RecursiveIteratorIterator.

<code class="php">foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.')) as $filename)
{
    // filter out "." and ".."
    if ($filename->isDir()) continue;

    echo "$filename\n";
}</code>

Voici comment cela fonctionne :

  • RecursiveDirectoryIterator crée un objet représentant un répertoire et son contenu. Il parcourt chaque fichier et sous-répertoire, fournissant un tableau d'objets.
  • RecursiveIteratorIterator ajoute des fonctionnalités supplémentaires pour parcourir les objets renvoyés par RecursiveDirectoryIterator, nous permettant d'accéder à chaque nom de fichier.
  • La condition if ($filename->isDir()) continue ; filtre les répertoires (représentés par . et ..) de la liste des fichiers.

En intégrant ces deux itérateurs, vous pouvez facilement générer un tableau de noms de fichiers qui incluent à la fois les fichiers du répertoire courant et ceux situé dans les sous-répertoires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn