本文共 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;} 以上两种方法各有优势,具体选择取决于实际需求。
转载地址:http://motfk.baihongyu.com/