Ответ 1
curl_errno()
возвращает 28, если время ожидания операции. См. http://curl.haxx.se/libcurl/c/libcurl-errors.html для других кодов ошибок.
Я знаю, как установить тайм-аут в cURL, но я хочу предупредить пользователя о том, что запрос был истекло.
Я создал ajax script, который позволяет пользователю запрашивать данные из разных сайтов страхования и сводить их в список. Если какой-либо из сайтов страхования не сможет ответить в течение определенного времени, я хочу предупредить пользователя о том, что текущая котировка этой компании недоступна на данный момент.
Возвращает ли cURL что-либо, чтобы сигнализировать о тайм-ауте?
curl_errno()
возвращает 28, если время ожидания операции. См. http://curl.haxx.se/libcurl/c/libcurl-errors.html для других кодов ошибок.
Или другое решение, которое может охватывать еще больше случаев (время ожидания сервера, ошибка сервера с пустой страницей), заключается в проверке того, отличается ли результат функции get_url, что "" или FALSE.
Пример функции get_url:
function get_url($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$tmp = curl_exec($ch);
curl_close($ch);
return $tmp;
}