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

解决方案 »

  1.   

    可以用迭代器呀
    示例$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";
      

  2.   

    Filesystem这个东西能解决你的问题吗?
      

  3.   

    SPL已经帮你解决这个问题,代码看#1