喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 那个大侠帮助优化一下  
 
失忆今生
中级会员
Rank: 3Rank: 3
一般会员


UID 25265
精华 0
积分 294
帖子 278
金钱 294 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-12-17
来自 -
状态 离线
[广告]: q m
那个大侠帮助优化一下

以下代码100000文件*10000文件夹,就慢得要命......
那位大侠帮助看一下怎么优化.......
有没有更好的方法.......
<?php
$Interval = null;
Interval();

set_time_limit(3600);

$Ftp_Path = "";
$Ftp_Addr = "";

$dir_Array = array();
$file_Array= array();

$dir_Array["F:/软件源码/"]=false;

reset($dir_Array);

$FSO  = opendir(key($dir_Array));
$i=0;
while(true){

        reset($dir_Array);///设置到第一条目录中

        $noncePath = key($dir_Array);///当前操作目录
       
        //echo count($dir_Array)."<br>";
        if(!$dir_Array[$noncePath]){
                //echo "$noncePath<br>";
                //echo count($dir_Array)."<br>";
                $FSO  = opendir($noncePath);//打开目录
               
                while($flist=readdir($FSO)){
                               
                        if(is_dir("$noncePath$flist")){
                                //echo $noncePath."<br>";
                                if($flist!="." && $flist!=".." && strlen($noncePath.$flist."/")>strlen($noncePath)){
                                        $dir_Array[$noncePath.$flist."/"] = false ;//标志目录未已经操作
                                        //echo "$noncePath$flist<br>";
                                }
                        }else{
                                $i++;
                                $file_Array[$noncePath][] = $noncePath.$flist;///记录文件
                        }
                }

                closedir($FSO);
                $dir_Array[$noncePath] = true;//已经读取过的目录
        }

        unset($dir_Array[$noncePath]);//删除已经操作过的目录
        if(count($dir_Array)==0){//停止目录遍历
                break;
        }
}

echo $i."<br>";
echo Interval();
function Interval(){
    global $Interval;
    $vTemp = microtime(); //返回目前时间的百万分之一秒戳记值
    $vTemp = explode(" ",$vTemp);
    $vTemp = doubleval($vTemp[1])+doubleval($vTemp[0]);
    if($Interval==null){//判断是否开始时间存在
        $Interval = $vTemp;
    }else{
        $vTemp = abs($vTemp-$Interval);//取得执行时间
        return $vTemp;
    }

}
?>

[ 本帖最后由 失忆今生 于 2007-7-13 09:59 AM 编辑 ]
2007-7-13 09:51 AM#1
查看资料  发短消息  QQ  Yahoo!  顶部
 
失忆今生
中级会员
Rank: 3Rank: 3
一般会员


UID 25265
精华 0
积分 294
帖子 278
金钱 294 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-12-17
来自 -
状态 离线
[推荐阅读] 一个捆饶我两天的PHP显示乱码的问题~~请大家帮帮我(不是数据库数据显示乱码)
自己D一下
2007-7-13 10:06 AM#2
查看资料  发短消息  QQ  Yahoo!  顶部
 
失忆今生
中级会员
Rank: 3Rank: 3
一般会员


UID 25265
精华 0
积分 294
帖子 278
金钱 294 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-12-17
来自 -
状态 离线
[推荐阅读] 求个高手做师傅`我可以给师傅工资:)本人什么语言也不会,现在在某小网吧做技术员
高手呢,现身........
2007-7-13 10:31 AM#3
查看资料  发短消息  QQ  Yahoo!  顶部
 
甜甜
新手上路
Rank: 1


UID 70099
精华 0
积分 1
帖子 121
金钱 1 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-3-22
来自 家里
状态 离线
[推荐阅读] 模拟登陆论坛方法
你dir /s一下看看要多久~~呵



我是甜甜
2007-7-13 02:51 PM#4
查看资料  发短消息  QQ  ICQ 状态  顶部
 
aicaitianya
新手上路
Rank: 1



UID 79628
精华 0
积分 28
帖子 23
金钱 28 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-9-6
来自 上海
状态 离线
[推荐阅读] 求在mysql中,怎么判断两个时间段之间是否有交集,把又交集的数据输出
看不懂……



卖馒头……
2007-7-13 04:23 PM#5
查看资料  发短消息  QQ  顶部
 
gton
注册会员
Rank: 2



UID 89230
精华 0
积分 140
帖子 95
金钱 140 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2007-3-13
状态 在线
[推荐阅读] safari for win 中对select的支持有问题
遍历目录 用递归做  速度极快



我的简历
2007-7-16 12:15 AM#6
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.029103 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP