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

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

DDD
DDDoriginal
2024-12-15 06:46:15248parcourir

How Can I Recursively Walk a Directory and Get All File and Folder Paths Using PHP?

Parcourir un répertoire de manière récursive avec une fonction PHP

Si vous devez parcourir un répertoire et ses sous-répertoires, en recherchant chaque fichier et dossier contenu à l'intérieur, vous pouvez créer une fonction PHP récursive pour gérer la tâche. Voici comment :

Implémentation de fonction récursive

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;
}

Utilisation

Appelez la fonction comme ceci :

$results = getDirContents('/xampp/htdocs/WORK');
var_dump($results);

Exemple Sortie

La fonction renverra un tableau contenant les chemins d'accès à tous les fichiers et dossiers du répertoire spécifié, y compris les sous-répertoires. Par exemple, étant donné le répertoire /xampp/htdocs/WORK, le résultat pourrait ressembler à ceci :

array (size=12)
  0 => string '/xampp/htdocs/WORK/iframe.html' (length=30)
  1 => string '/xampp/htdocs/WORK/index.html' (length=29)
  2 => string '/xampp/htdocs/WORK/js' (length=21)
  3 => string '/xampp/htdocs/WORK/js/btwn.js' (length=29)
  4 => string '/xampp/htdocs/WORK/js/qunit' (length=27)
  5 => string '/xampp/htdocs/WORK/js/qunit/qunit.css' (length=37)
  6 => string '/xampp/htdocs/WORK/js/qunit/qunit.js' (length=36)
  7 => string '/xampp/htdocs/WORK/js/unit-test.js' (length=34)
  8 => string '/xampp/htdocs/WORK/xxxxx.js' (length=30)
  9 => string '/xampp/htdocs/WORK/plane.png' (length=28)
  10 => string '/xampp/htdocs/WORK/qunit.html' (length=29)
  11 => string '/xampp/htdocs/WORK/styles.less' (length=30)

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
Article précédent:Tableau spécial IIArticle suivant:Tableau spécial II