Maison > développement back-end > tutoriel php > Comment puis-je répertorier de manière récursive tous les fichiers et dossiers d'un répertoire à l'aide de PHP ?

Comment puis-je répertorier de manière récursive tous les fichiers et dossiers d'un répertoire à l'aide de PHP ?

Barbara Streisand
Libérer: 2024-12-02 12:37:17
original
887 Les gens l'ont consulté

How Can I Recursively List All Files and Folders in a Directory Using PHP?

Parcours récursif de répertoires et de fichiers avec PHP

Q : Comment puis-je lister de manière récursive tous les fichiers et dossiers d'un répertoire à l'aide d'un Fonction PHP ?

A :Pour parcourir un répertoire et ses sous-répertoires, suivez ces étapes :

  1. Définir une fonction PHP :

    function getDirContents($dir, &$results = array()) {
        $files = scandir($dir);
    
        foreach ($files as $key => $value) {
            $path = realpath($dir . DIRECTORY_SEPARATOR . $value);
    
            if (!is_dir($path)) {
                $results[] = $path;
            } else if ($value != "." && $value != "..") {
                getDirContents($path, $results);
                $results[] = $path;
            }
        }
    
        return $results;
    }
    Copier après la connexion
  2. Récupérer des fichiers et Dossiers :

    var_dump(getDirContents('/xampp/htdocs/WORK'));
    Copier après la connexion
  3. Sortie :

    La sortie contiendra une liste de tous les fichiers et dossiers du répertoire spécifié, y compris les sous-répertoires.

Améliorations par rapport à l'original code :

  • Éviter la récursion infinie : Le code mis à jour garantit que la récursivité n'est effectuée que sur les répertoires non racine, empêchant ainsi les boucles infinies.
  • Utiliser Realpath : realpath() est utilisé pour obtenir le chemin réel de l'élément, ce qui résout tout problème symbolique liens.
  • Transmettre les résultats par référence : Le tableau des résultats est passé par référence pour éviter de copier le tableau à chaque itération, ce qui peut améliorer les performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal