用递归方法实现目录的遍历:
<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set("PRC");
/**
* 遍历某个目录下的所有文件(递归实现)
* @param string $dir
*/
function scanDir($dir)
{
echo $dir."<br>"; if (is_dir($dir))
{
$children = scandir($dir);
foreach ($children as $child)
{
if ($child !== '.' && $child !== '..')
{
scanAll2($dir.'/'.$child);
}
}
}
}
scanDir('D:/phpStudy/WWW/study');
?>
用非递归方法实现目录遍历:
<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set("PRC");
/**
* 遍历某个目录下的所有文件
* @param string $dir
*/
function scanDir($dir)
{
$list_arr = array();
$list_arr[] = $dir; while (count($list_arr) > 0)
{
//弹出数组最后一个元素
$file = array_pop($list_arr); //处理当前文件
echo $file."<br>"; //如果是目录
if (is_dir($file))
{
$children = scandir($file);
foreach ($children as $child)
{
if ($child !== '.' && $child !== '..')
{
$list_arr[] = $file.'/'.$child;
}
}
}
}
}
scanDir('D:/phpStudy/WWW/study');
?>