/**
 * 函数 tenor
 * 功能 启动一个url,但不等待返回
 * 参数 $page,待执行的页面程序
 * 返回 无
 **/
if(! function_exists('tenor')):
function tenor($page) {
$host = $_SERVER["HTTP_HOST"];
$fp = fsockopen($host, 80, $errno, $errmsg);
if($fp) {
fputs($fp,"GET /$page HTTP/1.0\nHost: $host\n\n");
fclose($fp);
}
}
endif;tenor('你抓取网站使用的程序名');

解决方案 »

  1.   

    PHP不行的话就换别的语言或工具。但好像PHP里面的stream机制
    支持Nonblocking的,看看文档应该可以解决你的问题。
      

  2.   

    xuzuning老兄:你那是nonblocking的嗎?好象看上去是阻塞式的一樣呀,如果同時執行下載10個網站的頁面,你的效率怎樣?
    qngzh老兄:有沒有好的介紹呀,我是才學三天的菜菜島,可對這個又需求得比較急,能幫一下忙嗎?
      

  3.   

    我没有
    不过如果有人能将php的内核改成支持多线程的话就能帮你了
      

  4.   

    是否可以试着自动打开多个页面,生成‘xuzuning老兄’的动态代码,配合eval函数使用;
      

  5.   

    那有沒有可能用Perl去做呢﹐如果行該怎么做﹐如果不行是不是就無解了﹖
      

  6.   

    唠叨兄的建议正解。PHP就不支持多线程 , 但是多进程还是支持的。a.php,循环请求b.php , b.php来抓页面a.php的请求,要像唠叨兄的那样,发送就关闭,不接收返回.heheh...
      

  7.   

    写过类似要求的
    给你提供一个思路:
    把soap写成函数,用 Call soap()去执行抓取,就类似与多线程执行了
    但是,要考虑好执行的线程数,太多的话会卡住的
      

  8.   

    TO:gu1dai(异域苍穹.百年飞行)老兄,發送就關閉,那我要取回的數據不就抓不到?我不且要發送還要取回呀!Dereky兄:能否給個例子呀!soap在Delphi下是試試,可要拿到PHP就不知從何下手了!