3

我得到了这个功能,现在有时当网站关闭或加载很长时间时,它会减慢我网站的加载时间。

如果服务器在 2 秒内没有响应,有没有办法让它返回 false?如您所见,我尝试过,CURLOPT_CONNECTTIMEOUT但这似乎没有奏效。

function url_get_contents($url)
{
    if (!function_exists('curl_init'))
    {
        die('Exit: CURL is not installed or enabled!');
    }

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    $output = curl_exec($ch);
    curl_close($ch);

    return $output;
}
4

4 回答 4

2

简短的回答:

curl_setopt($ch, CURLOPT_TIMEOUT, 2);


引用PHP cURL 文档

CURLOPT_CONNECTTIMEOUT:尝试连接时等待的秒数。使用 0 无限期等待。

CURLOPT_TIMEOUT 允许 cURL 函数执行的最大秒数。

于 2013-09-21T18:24:41.247 回答
1

CURLOPT_CONNECTTIMEOUT - 尝试连接时等待的秒数。使用 0 无限期等待。

CURLOPT_TIMEOUT - 允许 cURL 函数执行的最大秒数。

使用 CURLOPT_TIMEOUT

于 2013-09-21T18:22:51.910 回答
0

CURLOPT_CONNECTTIMEOUT限制 cURL 等待建立连接的时间。服务器仍然需要查找内容并发送它,这通常需要更长的时间。

cURL 有另一个选项,这是对函数CURLOPT_TIMEOUT的限制。curl_exec()将其视为对函数返回某些内容所花费的时间量的限制。这听起来像你在找什么:

curl_setopt($ch, CURLOPT_TIMEOUT, 2);
于 2013-09-21T18:26:34.167 回答
0

我猜你需要使用 curl_getinfo() 函数

看到这个http://php.net/manual/en/function.curl-getinfo.php

代码将是这样的

$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
于 2013-09-21T18:26:46.837 回答