Heim > Backend-Entwicklung > PHP-Tutorial > javascript - 这个php-curl类怎么用?

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

WBOY
Freigeben: 2016-06-06 20:09:52
Original
1063 Leute haben es durchsucht

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

<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>
Nach dem Login kopieren
Nach dem Login kopieren

求大神给个示例代码
我想做多线程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>
Nach dem Login kopieren
Nach dem Login kopieren

求大神给个示例代码
我想做多线程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>
Nach dem Login kopieren

首先 这只是个函数
其次 怎么用代码注释里写的很清楚了,
/
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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage