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); //打印结果...