本帖最后由 sibang 于 2010-06-29 17:35:23 编辑

解决方案 »

  1.   

    $result_array[$nTim]=$nFle;这个可能会有问题多个文件完全有可能在同一秒内生成
      

  2.   

    建议以后用上php代码标签,,,,现在比较难分清层次问题不一定在于上面,实在太不好读了,,
      

  3.   


    我仔细看过,每一个文件的生成时间都不相同,php代码标签我没有用,但是我在editplus内用了tab键的缩进,不过发到这里之后全部被csdn给过滤掉了
      

  4.   

    看看这样会不会保持代码的原来缩进样式
    Function Tree($Cur,$Ext){
    IF($Cur[strlen($Cur)-1]!="\\"){$Cur.="\\";}
    Static $result_array=Array();
    IF(Is_Dir($Cur)){
    $Dir=Dir($Cur);
    While($file=$Dir->read()){
    IF($file=="." Or $file==".." Or In_Array(StrToLower($file),$Ext)){Continue;}
    IF(Is_Dir($Cur.$file)){
    Tree($Cur.$file."\\",$Ext);
    }Else{
    $FileEx=Explode(".",$file);$FileEx=StrToLower(End($FileEx));
    IF($FileEx=="html" Or $FileEx=="htm" Or $FileEx=="php" Or $FileEx=="shtml" Or $FileEx=="xml" Or $FileEx=="txt"){
    $nFle=Str_iReplace("\\","/",$Cur.$file);
    $nFle=Str_iReplace("//","/",$nFle);
    $nTim=FileMTime($nFle);
    $result_array[$nTim]=$nFle;
    UnSet($FileEx);
    }Else{
    UnSet($FileEx);
    Continue;
    }
    }
    }
    $Dir->close();
    }
    Return $result_array;
    }
      

  5.   

    自己解决了已经,拿出来分享给大家Function Tree($dir="../"){
    //建立dir对象
    $d = dir($dir);
    While(False !== ($Fle = $d->read())){
    //去掉两个默认的目录
    IF($Fle=='..' Or $Fle=='.'){Continue;} //页面是utf-8的所以需要将文件名进行转码
    Echo iconv('gb2312','utf-8',$Fle)."<br>";
    //输出当前目录/文件
    $curPath=$d->path.'/'.$Fle;
    //如果是目录则遍历这个目录
    IF(Is_dir(RealPath($curPath))){
    Tree($curPath);//调用函数本身
    }
        }
        $d->close();
    }
    Tree();