日期:2014-05-17  浏览次数:20410 次

【求思路】PHP目录扫描,最大防止死循环的思路?
PHP扫描某个文件夹,防止死循环的思路。
现在自己想到的只有两种思路
1, while 扫描下去,如果碰到目录继续while。容易死机卡住
2,层级扫描,扫描一层然后保存目录地址到记录文件。然后再从保存的记录文件中提取目录地址再扫描一层,每次只扫描一层。不过如果目录太多,还是容易死机。
有没有更好的思路?
目录扫描 PHP opendir

------解决方案--------------------
可以用迭代器呀
示例
$ite=new RecursiveDirectoryIterator("./");

$bytestotal=0;
$nbfiles=0;
foreach (new RecursiveIteratorIterator($ite) as $filename=>$cur) {
    $filesize=$cur->getSize();
    $bytestotal+=$filesize;
    $nbfiles++;
    echo "$filename => $filesize\n";
}

$bytestotal=number_format($bytestotal);
echo "Total: $nbfiles files, $bytestotal bytes\n";

------解决方案--------------------
Filesystem这个东西能解决你的问题吗?
------解决方案--------------------
SPL已经帮你解决这个问题,代码看#1
------解决方案--------------------
1楼的代码收藏了,又学到东西了。
------解决方案--------------------
顶帖收藏~~


------解决方案--------------------
直接使用扩展
Directories