php curl 并发访问


$mh = curl_multi_init();
$ch = [];
foreach ($serversurl as $key => $url){
$data = [
'param' => $data
];
$ch[$key] = curl_init();
curl_setopt($ch[$key], CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch[$key], CURLOPT_URL, $url);
curl_setopt($ch[$key], CURLOPT_POST, true);
curl_setopt($ch[$key], CURLOPT_POSTFIELDS, $data);
curl_setopt($ch[$key], CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch[$key], CURLOPT_SSL_VERIFYHOST, 0);

curl_multi_add_handle($mh,$ch[$key]);
}

$active = 0; //连接数


$mrc = curl_multi_exec($mh, $active);
while ($active && $mrc == CURLM_OK) {

if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}

//循环释放
foreach ($serversurl as $key => $url){
curl_multi_remove_handle($mh, $ch[$key]);
}
curl_multi_close($mh);
ob_clean();
posted @ 2023-05-08 16:58  知冷知热  阅读(47)  评论(0)    收藏  举报