php遍历文件夹下的所有文件和子文件夹示例

网络编程 2025-03-24 06:47www.168986.cn编程入门

PHP文件夹:遍历所有文件和子文件夹

本文将向你展示如何使用PHP遍历一个文件夹下的所有文件和子文件夹。这里提供了两种实用的方法,需要的朋友不妨参考。

方法一:使用递归函数遍历目录并将结果存入数组。此代码支持PHP4及以上版本。对于PHP5及以上版本,可以使用scandir()函数简化while循环。代码如下:

```php

function my_scandir($dir) {

$files = array();

if ($handle = opendir($dir)) {

while (($file = readdir($handle)) !== false) {

if ($file != ".." && $file != ".") {

if (is_dir($dir . "/" . $file)) {

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

} else {

$files[] = $file;

}

}

}

closedir($handle);

return $files;

}

}

```

另一种实现方式如下:

```php

function my_scandir1($dir) {

$files = array();

$dir_list = scandir($dir);

foreach ($dir_list as $file) {

if ($file != ".." && $file != ".") {

if (is_dir($dir . "/" . $file)) {

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

} else {

$files[] = $file;

}

}

}

return $files;

}

```

使用方法很简单,只需调用这两个函数并传入要遍历的目录即可,例如:`$result = my_scandir('./');` 或 `$result = my_scandir1('./');`。

方法二:使用glob()函数和递归调用。代码如下:

```php

function fetchDir($dir) {

foreach (glob($dir . DIRECTORY_SEPARATOR . '') as $file) {

echo $file . PHP_EOL; // 使用PHP_EOL换行符跨平台兼容

if (is_dir($file)) {

fetchDir($file); // 递归调用fetchDir()函数遍历子目录

. . . } } } fetchDir("D:\wamp\any");

```这个函数会输出指定目录下的所有文件路径(包括子目录中的文件)。它使用了跨平台的目录分隔符和换行符,使得代码更具通用性。只需调用`fetchDir()`函数并传入要遍历的目录路径即可。例如:`fetchDir("D:\wamp\any");`。这样,你就可以轻松遍历并获取指定目录下的所有文件和子文件夹了。希望这些方法对你有所帮助!

上一篇:jQuery实现的模仿雨滴下落动画效果 下一篇:没有了

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