首页 > 后端开发 > php教程 > 如何在 PHP 中递归查找文件和文件夹而不出现性能问题?

如何在 PHP 中递归查找文件和文件夹而不出现性能问题?

Linda Hamilton
发布: 2024-11-25 21:17:27
原创
198 人浏览过

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

使用 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;
}
登录后复制

排除“.”和“..”

我们添加了排除“.”的条件。和来自递归调用的“..”目录。这些目录分别代表当前目录和父目录,包含它们将创建无限循环。

用法

要使用该函数,只需提供指向该函数的路径即可您想要遍历的目录:

var_dump(getDirContents('/xampp/htdocs/WORK'));
登录后复制

此代码将返回一个数组,其中包含指定目录中的文件和文件夹的完整列表。每个条目都是文件或文件夹的完整路径。

以上是如何在 PHP 中递归查找文件和文件夹而不出现性能问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

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