Проверьте прогресс cURL - PullRequest
5 голосов
/ 21 июня 2011

Есть ли способ проверить состояние команды curl? Скажем, у меня есть вызов curl из php, использующий exec для его запуска Есть ли способ, которым я могу проверить прогресс, пока он работает? Или мне нужно дождаться его окончания?

exec ("curl $ url -k> / dev / null 2> & 1 &");

1 Ответ

4 голосов
/ 21 июня 2011

Вы можете определить функцию прогресса:

curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'my_progress_handler');

Имя функции обратного вызова, где функция обратного вызова занимает три параметры. Во-первых, это CURL ресурс, второй ресурс дескриптора файла и третья длина. Вернуть строку содержащие данные.

Для получения дополнительной информации см. здесь .

Внимание: Этот комментарий оспаривает сигнатуру собственной функции PHP.

Вы не можете использовать exec(), потому что это функция блокировки. Он будет ждать, пока текущая программа не будет завершена.
Редактировать: О, я вижу, что вы использовали амперсанд, неважно

То, что вы могли бы использовать, это popen(), но если у curl нет хорошего способа вывода прогресса, это не будет симпатичным.

Я бы посоветовал передать -# в качестве параметра curl, чтобы вы могли аккуратно захватить прогресс из выходного потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...