php获取文件夹中文件的两种方法
发布日期:2025-05-04 22:50:18 浏览次数:2 分类:精选文章

本文共 1178 字,大约阅读时间需要 3 分钟。

传统方法读取文件夹内容的实现

在实际开发中,读取某个文件夹下的内容是一个常见操作。传统方法主要使用 opendir 和 readdir 结合 while 循环来实现文件遍历,同时过滤当前文件夹和父文件夹。

以下是传统方法的具体实现代码:

function readFolderFiles($path) {    $list = [];    $resource = opendir($path);    while ($file = readdir($resource)) {        // 排除根目录        if ($file != ".." && $file != ".") {            if (is_dir($path . "/" . $file)) {                // 子文件夹,进行递归                $list[$file] = readFolderFiles($path . "/" . $file);            } else {                // 根目录下的文件                $list[] = $file;            }        }    }    closedir($resource);    return $list ?: [];}

方法二:使用 scandir 函数优化文件夹扫描

除了传统方法,使用 scandir 函数可以更高效地扫描文件夹内容,替代传统的 while 循环读取。

以下是使用 scandir 的优化实现代码:

function scandirFolder($path) {    $list = [];    $temp_list = scandir($path);    foreach ($temp_list as $file) {        // 排除根目录        if ($file != ".." && $file != ".") {            $file_path = $path . "/" . $file;            if (is_dir($file_path)) {                // 子文件夹,继续递归                $list[$file] = scandirFolder($file_path);            } else {                // 常规文件                $list[] = $file;            }        }    }    return $list;}

以上两种方法各有优势,具体选择取决于实际需求。

上一篇:PHP获取日期的一些方法总结
下一篇:php获取数据库中数据生成json,中文乱码问题的解决方案

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2026年06月17日 14时38分10秒