首页 >后端开发 >php教程 >如何使用 PHP 递归列出目录中的所有文件和文件夹?

如何使用 PHP 递归列出目录中的所有文件和文件夹?

Barbara Streisand
Barbara Streisand原创
2024-12-02 12:37:17837浏览

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

使用 PHP 递归遍历目录和文件

问:如何使用递归列出目录中的所有文件和文件夹PHP函数?

A:要遍历目录及其子目录,请按照以下步骤操作:

  1. 定义一个 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;
    }
  2. 检索文件和文件夹:

    var_dump(getDirContents('/xampp/htdocs/WORK'));
  3. 输出:

    输出将包含指定目录中所有文件和文件夹的列表,包括子目录。

对原始代码的改进:

  • 避免无限递归:更新的代码确保递归仅在非根目录,防止无限循环。
  • 使用 Realpath: realpath() 用于获取项目的真实路径,解析任何符号链接。
  • 通过引用传递结果:结果数组通过引用传递,以避免在每次迭代时复制数组,这可以提高表演。

以上是如何使用 PHP 递归列出目录中的所有文件和文件夹?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn