//递归遍历文件
//递归:实现流程分析
/*
*1、先找到父问题,定义函数,解决父问题(遍历给定路径文件里面的所有文件)
*2、找出递归点,子问题调用自己的函数解决问题,(遍历文件下的所有文件)
*3、找到递归出口:什么时候函数不需要再执行了,直接 return
*/
//定义路径
$dir='../';
//定义函数:遍历路径文件里面的所有文件
function myScandir($dir,$level=0){//$level控制文件分层缩进,每调用一次自加1,但自身不改变
//判断是否是有效路径
if(!is_dir($dir)) return false;
//获取文件:所有文件,为一维数组
$files = scandir($dir);
//遍历文件
foreach($files as $file){
//组合路径
$tmpdir = $dir.'/'.$file;
//根据$level缩进文件 利用层级关系,排队
echo str_repeat(" ",$level*4);
//判断:路径蓝色,文件红色
if(is_dir($tmpdir)){
//路径:蓝色
echo "<font color='blue'>{$file}</font><br/>";
//排除无效文件名'.'和'..'
if($file!='.' && $file!='..'){
//递归点:子问题调用
myScandir($tmpdir,$level+1);
}
}else{
//文件:红色
echo "<font color='red'>{$file}</font><br/>";
}
}//递归出口点:foreach遍历完也没有文件时
}
//函数调用
myScandir($dir);