PHP CURL マルチスレッド GET/POST クラス
リリース: 2016-07-25 08:44:06
-
- /*************************************************** ************
- PHP CURL 多線程 GET/POST
- curl(array('url?get=data','url'),array('','post_data'));
- ************************************************* ***************/
- functioncurl($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) { ブレーク; }
- while ($done =curl_multi_info_read($queue)) {
- $error =curl_error($done['handle']);
- $results =curl_multi_getcontent($done['handle']);
- $responses[$map [(文字列) $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
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31