Ответ на заданный вами вопрос:
- Если ответ еще не получен,
curl_multi_getcontent
возвращает NULL
.
- Если передача выполняется,
curl_multi_getcontent
возвращает полученные данные.
Вопрос, который вы хотели задать, по-видимому, таков: Как узнать, когда операция curl_multi...
завершена?
Ответ в том, что вы не используете curl_multi_getcontent
для этого. Вместо этого неоднократно вызывайте curl_multi_exec
до тех пор, пока второй параметр (который представляет собой число вложенных дескрипторов, все еще работающих над его передачей) не станет равным 0. В этом посте из комментариев в руководстве показаны некоторые рабочие код. Вы также можете посмотреть curl_multi_select
, который будет блокироваться до тех пор, пока в соединении не будет активности. Это, вероятно, приводит к меньшему количеству потерянных циклов при совершении вызовов curl_multi_exec
: см. Пример № 1 на странице руководства для curl_multi_exec
.
Если вы используете версию 5.2.0 или более позднюю, вы можете использовать curl_multi_info_read
, чтобы получить состояние отдельных подключений, а не ждать их всех. (инструкция)