cURL检查超时

时间:2011-02-15 12:42:15

标签: php curl timeout

我知道如何在cURL中设置超时但我想提醒用户请求超时。

我创建了一个ajax脚本,允许用户从各个保险站点请求数据并聚合到列表中。如果任何保险网站在一定时间内没有响应,我想提醒用户目前该公司的当前报价不可用。

cURL是否会返回任何信号以指示超时?

2 个答案:

答案 0 :(得分:14)

如果操作超时,

curl_errno()将返回28。有关其他错误代码,请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html

答案 1 :(得分:2)

或者另一个可以覆盖更多案例的解决方案(服务器超时,服务器错误地显示空白页面)是检查你的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;
}