PHP CURL 多线程 GET/POST 类
生活随笔
收集整理的這篇文章主要介紹了
PHP CURL 多线程 GET/POST 类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:http://www.oschina.net/code/snippet_1475115_44902
<?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; }總結
以上是生活随笔為你收集整理的PHP CURL 多线程 GET/POST 类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 意大利一份牛排多少钱?
- 下一篇: PHP Curl多线程原理实例详解