Maison >développement back-end >tutoriel php >Comment lister de manière récursive des fichiers dans des sous-répertoires avec PHP ?

Comment lister de manière récursive des fichiers dans des sous-répertoires avec PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 17:59:29967parcourir

How to Recursively List Files in Subdirectories with PHP?

PHP : Répertorier les fichiers de manière récursive dans les sous-répertoires

Pour lister tous les fichiers d'un répertoire, y compris les sous-répertoires, et stocker les résultats dans un tableau, PHP propose plusieurs fonctions intégrées qui fonctionnent ensemble.

Utilisation de RecursiveIteratorIterator et RecursiveDirectoryIterator

Le code suivant montre comment obtenir le résultat souhaité :

<code class="php">$directory = "foldername";

// Create a RecursiveDirectoryIterator object for the specified directory
$directoryIterator = new RecursiveDirectoryIterator($directory);

// Create a RecursiveIteratorIterator object for the directory iterator
$iterator = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::SELF_FIRST);

// Initialize an empty array to store the file names
$files = [];

// Iterate over the files in the directory
foreach ($iterator as $filename) {
    // Filter out "." and ".." directories
    if ($filename->isDir()) {
        continue;
    }

    // Add the file name to the array
    $files[] = $filename;
}</code>

Explication

La classe RecursiveDirectoryIterator crée un objet qui parcourt les fichiers et répertoires dans le chemin spécifié. La classe RecursiveIteratorIterator fournit une itération récursive sur un objet RecursiveIterator, garantissant que les sous-répertoires sont également explorés.

En filtrant "." et ".." avec la méthode isDir(), nous ajoutons uniquement les fichiers réels au tableau $files.

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