52php
中级会员
 
UID 84572
精华
0
积分 361
帖子 225
金钱 361 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-12-10
状态 离线
|
[广告]: q
m
怎么安排多线程采集的网址
最近看了dede自带的采集器,对于里面模拟多线程采集的网址安排搞不清楚。他所谓的多线程其实就是用多个框架打开同一个页面执行相同的任务,下面的代码是框架部分的代码,这个我能理解,不过采集器部分的url代码应该怎么写呢?
if($threadnum>0)
{
$step = ceil($totalnum / $threadnum);
$j = 0;
for($i=1;$i<=$totalnum;$i++)
{
if($i%$step==0)
{
$j++;
$sdd = ($i-$step);
$surl = "co_gather_start_action.php?islisten=$islisten&thethr=$j&sptime=$sptime&nid=$nid&oldstart=$sdd&startdd=$sdd&totalnum=".($step * $j)."&pagesize=$pagesize";
echo "<iframe scrolling='no' name='thredfrm$j' frameborder='0' width='100%' height='200' src='$surl'></iframe>\r\n";
}
}
if($totalnum % $threadnum != 0)
{
$sdd = $j*$step;
$k = $j+1;
$surl = "co_gather_start_action.php?islisten=$islisten&thethr=$k&sptime=$sptime&nid=$nid&oldstart=$sdd&startdd=$sdd&totalnum=$totalnum&pagesize=$pagesize";
echo "<iframe scrolling='no' name='thredfrm$j' frameborder='0' width='100%' height='200' src='$surl'></iframe>\r\n";
}
exit();
} 如果是简单的单线程可能是:
$url='http://baidu.com';
$fp=file($url);
...
但是多线程的一般是从数据库或者文本读取一个网址集合,应该如何结合上面的框架写这个url,让他们的采集不至于重复?
测试很久了没搞出来,做过采集器或者相关的、知道的朋友说下,谢过先!
|
|