// 创建批处理cURL句柄
$mh = curl_multi_init();
//创建每一个curl会话
$curl[$count] = curl_init(); // 启动一个CURL会话
curl_setopt($curl[$count], CURLOPT_URL, $url);
curl_setopt($curl[$count], CURLOPT_HEADER, 0);
curl_setopt($curl[$count], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl[$count], CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($curl[$count], CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl[$count], CURLOPT_COOKIE , $cookie );
curl_setopt($curl[$count], CURLOPT_HTTPHEADER, $headers);
curl_multi_add_handle($mh, $curl[$count]);
// 执行批处理句柄
do {
$mrc = curl_multi_exec($mh, $active);
} while ($active > 0);
$sql = "";
//获取处理结果
for($i = 0; $i < $count; $i ++){
$content = json_decode(curl_multi_getcontent($curl[ $i ]));
foreach($content->data->content as $re){
echo $re->hphm;
}
// $data[ $i ] = ( curl_errno($curl[ $i ]) == 0 ) ? $content : false;
}
// 关闭全部句柄
for($i = 0; $i < $count; $i ++){
curl_multi_remove_handle($mh, $curl[ $i ]);
}
curl_multi_close($mh);
各函数作用解释:
curl_multi_init()
初始化一个curl批处理句柄资源。
curl_multi_add_handle()
向curl批处理会话中添加单独的curl句柄资源。curl_multi_add_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。
curl_multi_exec()
解析一个curl批处理句柄,curl_multi_exec()函数有两个参数,第一个参数表示一个批处理句柄资源,第二个参数是一个引用值的参数,表示剩余需要处理的单个的curl句柄资源数量。
curl_multi_remove_handle()
移除curl批处理句柄资源中的某个句柄资源,curl_multi_remove_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。
curl_multi_close()
关闭一个批处理句柄资源。
curl_multi_getcontent()
在设置了CURLOPT_RETURNTRANSFER的情况下,返回获取的输出的文本流。
curl_multi_info_read()
获取当前解析的curl的相关传输信息。
- THE END -
最后修改:2021年2月1日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.95app.top/php-curl%e5%b9%b6%e5%8f%91/