递归模式
function read_dir($dir)
{
$files = array();
$dir_list = scandir($dir);
foreach ($dir_list as $file) {
if ($file != '..' && $file != '.') { // 排除根目录
if (is_dir($dir.'/'.$file)) { // 如果$file是子目录则递归
$files[] = read_dir($dir.'/'.$file);
} else {
$files[]= $file;
}
}
}
return $files;
}
队列模式
function my_dir($dir)
{
$files = array();
$queue = array($dir);
while ($data = each($queue)) {
$path = $data['value'];
if (is_dir($path) && $handle = opendir($path)) {
while ($file = readdir($handle)) {
if ($file == '.' || $file == '..') continue;
$files[] = $real_path = $path.'/'.$file;
if (is_dir($real_path)) $queue[] = $real_path;
}
}
closedir($handle);
}
return $files;
}
print_r(my_dir('D:/phpStudy/WWW/Test'));exit;