Каков наилучший способ / код для использования подхода CURL-MULTI? Я использую приведенный ниже код, но много раз, $response
возвращает false.
$mch = curl_multi_init();
$handlesArray=[];
foreach ($urls as $key=> $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
$handlesArray[$key] = $ch;
curl_multi_add_handle($mch, $handlesArray[$key]);
}
// $index = null; do{ curl_multi_exec($mch, $index); } while ($index > 0);
$active=true; $mrc = CURLM_OK;
while ($active && $mrc == CURLM_OK) {
// Wait for activity on any curl-connection
if (curl_multi_select($mch) == -1) {
usleep(100);
}
// Continue to exec until curl is ready to give us more data
do {
$mrc = curl_multi_exec($mch, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
foreach($urls as $key => $url)
{
$handle=$handlesArray[$key];
$response = curl_multi_getcontent($handle);
if(!$response) echo "error $key !!";
curl_multi_remove_handle($mch, $handle);
curl_close($handle);
}
curl_multi_close($mch);
Есть ли что-нибудь, что можно изменить там?