почему curl_multi_exec в два цикла

Я видел пример кода, интересно, зачем использовать два цикла do-while? В чем разница между двумя петлями? ждать ответа онлайн, спасибо ~~

do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

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

0

Решение

Как представлено, первый цикл предназначен для инициализации клиентов HTTP. Обычно это выполняется только один раз. Затем во втором цикле отправляются HTTP-запросы и ответы собираются.

Это не очень удобно, если вы хотите, чтобы ваш скрипт что-то делал, пока он ожидает обработки HTTP-запросов (вы можете поместить некоторые вещи, которые вы хотите сделать, на отдельную страницу и назвать это как ресурс curl — но его немного грязно).

Увидеть эта страница для более подробной информации и альтернативных конструкций.

2

Другие решения

Других решений пока нет …