Maison > développement back-end > tutoriel php > Comment puis-je rechercher de manière récursive des fichiers et des dossiers en PHP sans problèmes de performances ?

Comment puis-je rechercher de manière récursive des fichiers et des dossiers en PHP sans problèmes de performances ?

Linda Hamilton
Libérer: 2024-11-25 21:17:27
original
155 Les gens l'ont consulté

How Can I Recursively Find Files and Folders in PHP Without Performance Issues?

Recherche récursive de fichiers et de dossiers avec PHP

Pour parcourir le contenu d'un répertoire et tous les sous-répertoires, une fonction récursive est utilisée. Cependant, le code fourni présente un problème de performances, entraînant un ralentissement significatif du navigateur.

Le problème

La fonction n'exclut pas "." et ".." des appels récursifs, conduisant à une boucle infinie et à une exécution lente.

Le correctif

Pour résoudre ce problème, nous avons modifié le code comme suit :

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

Exclusion de "." et ".."

Nous avons ajouté des conditions pour exclure "." et ".." répertoires des appels récursifs. Ces répertoires représentent respectivement les répertoires actuel et parent, et leur inclusion créerait une boucle infinie.

Utilisation

Pour utiliser la fonction, fournissez simplement le chemin d'accès au répertoire que vous souhaitez parcourir :

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

Ce code renverra un tableau contenant la liste complète des fichiers et des dossiers dans le répertoire spécifié. Chaque entrée sera le chemin complet du fichier ou du dossier.

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