php 递归和非递归以及SPL遍历目录下的所有文件
//php 递归实现遍历 用dir 返回对象 <? function loop($dir){ $mydir =dir($dir); //以对象的形式访问 while($file = $mydir ->read()){ //目录中有隐藏文件'.'和'..' 遍历的时候需要注意 if((is_dir("$dir/$file")) && ($file!=".") && ($file!="..")){ echo $file.'</br>'; loop("$dir/$file"); //递归循环 }else{ if($file!=".." && $file!="."){ echo $file."</br>"; } } } } loop(dirname(__FILE__)); //dirname 去掉文件名返回目录名 非递归处理遍历目录 思路: 首先创建一个数组,因为第一次传的是一个去掉文件名的目录名(如 c://wamp/www/php) 进行foreach 循环 所以第一次把C://wamp/www/php 下的全部文件都放入到了 数组中 /只够进行 while大循环 每次输出数组的最后一个,当文件为目录的时候在此进行foreach循环 知道最后一个值时count($list)值为0 退出循环 function scanAll($dir) { $list = array(); $list[