PHP怎么递归遍历一个文件夹下的有文件和文件夹?
PHP可以使用scandir()
函数来读取一个文件夹下的所有内容,然后用is_dir()
函数来判断是否是文件夹,如果是文件夹,就继续递归调用自己,如果是文件,就输出文件名。下面是一个示例代码:
<?php
//定义一个函数,接收一个文件夹路径作为参数
function traverse_folder($folder_path) {
//遍历文件夹中的所有文件和子文件夹
foreach (scandir($folder_path) as $item) {
//跳过隐藏的文件.和..
if ($item == '.' || $item == '..') continue;
//拼接完整的路径
$subpath = $folder_path . '/' . $item;
//判断是否是文件夹
if (is_dir($subpath)) {
//如果是文件夹,就输出文件夹名,并递归调用自己
echo "<font color='red'>$subpath</font><br>";
traverse_folder($subpath);
} else {
//如果是文件,就输出文件名
echo $subpath . "<br>";
}
}
}
//测试
traverse_folder('./');
?>