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

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

Barbara Streisand
发布: 2024-12-02 12:37:17
原创
836 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板