已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: [开源]php curl多线程 GET/POST

作者: @Ta

时间: 2014-12-26

点击: 5509

php curl多线程 GET/POST 可用于批量挂Q、监控任务,不再排队GET/POST,批量访问让监控效率更高!
注:默认超时30s,请自行更改!

<?php
/****************************************************************
                   PHP CURL 多线程 GET/POST
             Email:szj1006@vip.qq.com/QQ:690204663
	                 Powered by XiaoSang
     curl(array('url?get=data','url'),array('','post_data'));
*****************************************************************/
function curl($urls,$post) {
    $queue = curl_multi_init();
    $map = array();
    foreach ($urls as $key => $url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post[$key]);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_NOSIGNAL, true);
        curl_multi_add_handle($queue, $ch);
        $map[(string) $ch] = $url;
    }
    $responses = array();
    do {
        while (($code = curl_multi_exec($queue, $active)) == CURLM_CALL_MULTI_PERFORM) ;
        if ($code != CURLM_OK) { break; }
        while ($done = curl_multi_info_read($queue)) {
            $error = curl_error($done['handle']);
            $results = curl_multi_getcontent($done['handle']);
            $responses[$map[(string) $done['handle']]] = compact('error', 'results');
            curl_multi_remove_handle($queue, $done['handle']);
            curl_close($done['handle']);
        }
        if ($active > 0) {
            curl_multi_select($queue, 0.5);
        }
    } while ($active);
    curl_multi_close($queue);
    return $responses;
}

[隐藏样式|查看源码]


『回复列表(11|隐藏机器人聊天)』

1. 不就是一个while吗
(/@Ta/2014-12-25 23:47//)

2. @超级管理员,while只是显示返回信息用,最有价值的是curl_multi_init
(/@Ta/2014-12-25 23:49//)

3. LUA什么时候会成为PHP的内置就好了
(/@Ta/2014-12-26 01:08//)

4. 有时间试试,加到我网站里
(/@Ta/2014-12-26 02:22//)

5. 可以创建几个线程?
(/@Ta/2014-12-26 07:00//)

6. 效率差不多
http://php.net/manual/zh/function.curl-multi-init.php
(/@Ta/2014-12-26 07:36//)

7. @小桑,寂寞用?
(/@Ta/2014-12-26 07:43//)

8. @0xAINI,看你几个url。@读书顶个鸟用,淘宝搜索优化过,应该效率好些。@MINE,孤独用也行。
(/@Ta/2014-12-26 07:58//)

9. 这对免费空间压力山大的,刷虎绿林几百次电脑cpu就跑得老高了。
(/@Ta/2014-12-26 15:53//)

10. @_abc,那就只能批量读取小部分啦~我这个主要用在我的短信云轰炸上面{呲牙}
(/@Ta/2014-12-28 23:41//)

11. 我没看懂→_→
(/@Ta/2014-12-29 00:19//)

回复需要登录

9月27日 03:39 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1