Я наткнулся на это, пытаясь сделать то же самое сам.Я решил добавить свое решение, чтобы помочь любому, кто столкнется с такой же проблемой в будущем.Во-первых, я предполагаю, что у вас есть массив ваших обработчиков curl:
$mh = curl_multi_init();
$requests = array();
foreach ($someArray as $identifier => $url) {
$requests[$identifier] = curl_init($url);
curl_setopt($requests[$identifier], CURLOPT_RETURNTRANSFER, true);
//any other options you need to set go here
curl_multi_add_handle($mh, $requests[$identifier]);
}
Я также предполагаю, что вы запустили запросы:
do {
$status = curl_multi_exec($mh, $running);
} while ($status === CURLM_CALL_MULTI_PERFORM || $running);
Наконец, мы получаем ответна ваш вопрос:
$returned = array();
foreach ($requests as $identifier => $request) {
$returned[$identifier] = curl_multi_getcontent($request);
curl_multi_remove_handle($mh, $request); //assuming we're being responsible about our resource management
curl_close($request); //being responsible again. THIS MUST GO AFTER curl_multi_getcontent();
}
$returned
теперь содержит все ваши данные.