php遍历文件夹所有文件子文件夹函数代码

网络编程 2025-03-13 03:46www.168986.cn编程入门

在PHP世界中,遍历文件夹及其所有子文件夹中的文件是一项常见任务。下面是一个名为`my_scandir`的自定义函数,它优雅地完成了这一工作。这个函数可以深入目录结构,收集每一个文件的路径,然后返回这些路径的列表。

当你调用`my_scandir`函数并传入一个目录路径时,它会开始遍历该目录。如果遇到的是一个子目录,它会递归调用自身,确保捕获到所有嵌套的子目录中的文件。对于每个文件,只要它不是当前目录的"."或上一级目录的"..",就会被添加到结果数组中。

让我们来看看这个函数是如何运作的:

```php

function my_scandir($dir) {

$files = array(); // 用于存储文件路径的数组

if (is_dir($dir)) { // 检查传入的路径是否是一个目录

if ($handle = opendir($dir)) { // 打开目录以读取其内容

while (($file = readdir($handle)) !== false) { // 读取目录中的每个文件或子目录

if ($file != "." && $file != "..") { // 忽略当前和上级目录的标志

if (is_dir($dir . "/" . $file)) { // 如果是一个子目录,则递归调用my_scandir

$files[$file] = my_scandir($dir . "/" . $file);

} else { // 如果是文件,则添加到结果数组中

$files[] = $dir . "/" . $file;

}

}

}

closedir($handle); // 关闭目录句柄

return $files; // 返回包含所有文件路径的数组

}

}

}

// 使用示例:打印出"D:\Downloads\Firefox"目录下的所有文件路径

print_r(my_scandir("D:\Downloads\Firefox"));

```

通过这个函数,你可以方便地获取指定目录下的所有文件路径,无论是文件还是子目录中的文件。这使得在Web开发或其他PHP应用中处理文件和目录变得简单而高效。只需调用这个函数,并传入你想要遍历的目录路径,它就会给你一个包含所有文件路径的数组,你可以根据需要进行进一步的处理。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by