Maison >développement back-end >tutoriel php >Comment lister de manière récursive tous les fichiers d'un répertoire en PHP ?

Comment lister de manière récursive tous les fichiers d'un répertoire en PHP ?

DDD
DDDoriginal
2024-11-03 22:06:31320parcourir

How do I recursively list all files in a directory in PHP?

Liste récursive des fichiers en PHP

Récupérer une liste de tous les fichiers d'un répertoire est une tâche courante en PHP. Cependant, que se passe-t-il si vous devez également inclure des fichiers provenant de sous-répertoires ? Ce guide explique comment y parvenir.

Solution

Pour lister tous les fichiers d'un répertoire, y compris ceux des sous-répertoires, vous pouvez utiliser le code suivant :

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

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

Explication

Cette solution emploie deux classes de la bibliothèque standard PHP : RecursiveDirectoryIterator et RecursiveIteratorIterator. Décomposons le code :

  • RecursiveDirectoryIterator('foldername'): Initialise un itérateur de répertoire pour le dossier spécifié dans 'foldername.'
  • new RecursiveIteratorIterator($directoryIterator): Crée un itérateur qui parcourt de manière récursive tous les répertoires et fichiers du répertoire spécifié.

La boucle suivante parcourt tous les fichiers du répertoire et des sous-répertoires, imprimant leurs noms s'ils ne sont pas des répertoires.

Documentation PHP

  • [RecursiveDirectoryIterator](https://www.php.net/manual/en/class.recursivedirectoryiterator.php)
  • [RecursiveIteratorIterator](https://www.php.net/manual/en/class.recursiveiteratoriterator.php)

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