这段PHP代码当数据量比较大时,循环起来有点慢,怎么优化下?

PHP编程者 2010-12-23 09:52:00
这段代码当$fucknum比较大时,循环起来有点慢,有什么优化方案吗?
function autonewnewegg($arr){
$fucknum=intval($arr['fucknum']); // # 获取抓取条数的整数值
$outime=$fucknum*2+100;
set_time_limit($outime);//设置脚本执行时间
$nextnum=20;//连续查找10次不存在则终止
$sn=$arr['sn'];

$acl=explode("-",$sn);
$acl_1=preg_replace('/[^0-9]+/','',$acl[1]); //二次
$a=$b=0; //二次

while($fucknum>0){
$arr1 = $arr2 = array();
if($acl[2]<1000&&$acl_1<100){
$acl[2]=str_pad("$acl[2]",3,'0',STR_PAD_LEFT);
$acl_1=str_pad("$acl_1",2,'0',STR_PAD_LEFT);
$acl[1]="c".$acl_1;
$arr_in=implode("-",$acl);

$url=$GLOBALS['competitor'][1]['product'].$arr_in.'.htm';
if($acl[2]==999){
$acl_1=$acl_1+1;
$acl[2]=001;
}else {
++$acl[2];
}
}elseif($acl[0]<=99){
$acl[0]=str_pad("$acl[0]",2,'0',STR_PAD_LEFT);
$arr_in=implode("-",$acl);

$acl[2]=001;
$acl_1=01;
++$acl[0];
$url=$GLOBALS['competitor'][1]['product'].$arr_in.'.htm';
}
$str = file_get_contents($url);
if(!$str){
$fucknum--;
}else{
$preg ='/href="http:\/\/www\.newegg\.com\.cn\/SubCategory\/(\d*)\.htm">/';
$preg2 ='/<h1>(.*)<\/h1>/';

$str = iconv("gbk","UTF-8",$str);
preg_match($preg,$str,$arr1);
preg_match($preg2,$str,$arr2);
if(empty($arr1) || empty($arr2)){
$fucknum--;
}else{
$price = $this->ocr_newegg($url);
if ($price == false||$price=='.'){
$price = $this->ocr_newegg1($url);
}
if($price == false){
}else{
$autoarr=array('cid'=>$arr1[1],'name_newegg'=>$arr2[1],'price_newegg'=>$price,'sn_newegg'=>$arr_in);
$this->addnew_newegg($autoarr);
}
$fucknum--;
}
}
}
return true;
}
...全文
359 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
PHP编程者 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 helloyou0 的回复:]

"$fucknum比较大"是多大?

另外,这种一定要先做测试,找出"慢"的真正原因,
盲目地去改,很多时候是浪费时间
[/Quote]平均一分钟能取得50条记录吧
helloyou0 2010-12-24
  • 打赏
  • 举报
回复
"$fucknum比较大"是多大?

另外,这种一定要先做测试,找出"慢"的真正原因,
盲目地去改,很多时候是浪费时间
在-云端 2010-12-23
  • 打赏
  • 举报
回复
在你另一个帖已经回复!
PHP编程者 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyc1998 的回复:]

模拟多进程~~让你的$fucknum次循环拆分成一次次同时执行!
[/Quote]怎么个模拟法?大体思路是?
在-云端 2010-12-23
  • 打赏
  • 举报
回复
模拟多进程~~让你的$fucknum次循环拆分成一次次同时执行!

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧