PHP的递归目录列表
使用以下功能列出一个或多个嵌套目录的内容。
function recursive_directory($dirname,$maxdepth=10, $depth=0){
if ($depth >= $maxdepth) {
return false;
}
$subdirectories = array();
$files = array();
if (is_dir($dirname) && is_readable($dirname)) {
$d = dir($dirname);
while (false !== ($f = $d->read())) {
$file = $d->path.'/'.$f;
//跳过。和..
if (('.'==$f) || ('..'==$f)) {
continue;
};
if (is_dir($dirname.'/'.$f)) {
array_push($subdirectories,$dirname.'/'.$f);
} else {
array_push($files,$dirname.'/'.$f);
};
};
$d->close();
foreach ($subdirectories as $subdirectory) {
$files = array_merge($files, recursive_directory($subdirectory, $maxdepth, $depth+1));
};
}
return $files;
}通过以下方式使用。
$files = recursive_directory('folder');
print_r($files); //打印结果...默认情况下,该功能将向下移动的最大深度设置为10。可以在运行时将其覆盖。
$files = recursive_directory('folder', 20); //达到最高等级20
print_r($files); //打印结果...