Home > Backend Development > PHP Tutorial > javascript - 这个php-curl类怎么用?

javascript - 这个php-curl类怎么用?

WBOY
Release: 2016-06-06 20:09:52
Original
1075 people have browsed it

我在网上找了一个类,但是没有使用示例代码,
请问这个类怎么用?

<code><?php /****************************************************************
PHP CURL 多线程 GET/POST
Email:szj1006@vip.qq.com/QQ:690204663
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;
}</code>
Copy after login
Copy after login

求大神给个示例代码
我想做多线程post

回复内容:

我在网上找了一个类,但是没有使用示例代码,
请问这个类怎么用?

<code><?php /****************************************************************
PHP CURL 多线程 GET/POST
Email:szj1006@vip.qq.com/QQ:690204663
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;
}</code>
Copy after login
Copy after login

求大神给个示例代码
我想做多线程post

<code>$urls=['wwww.baidu.com','www.google.com','www.qq.com'];


$post_data=['aa'=>'bb'];
$resp=curl($urls,$post_data);
print_r($resp);</code>
Copy after login

首先 这只是个函数
其次 怎么用代码注释里写的很清楚了,
/
PHP CURL 多线程 GET/POST
Email:szj1006@vip.qq.com/QQ:690204663
curl(array('url?get=data','url'),array('','post_data'));
*/
在用,如果用要类的话
推荐

  1. snoopy 不是通过curl来获取的

  2. [requests for php](http://requests.ryanmccue.info/)

多线程的curl推荐这个https://github.com/ares333/php-curlmulti

多线程curl推荐 https://github.com/actors315/SmartCurl.git

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template