我得到了这个功能,现在有时当一个网站关闭或长时间加载时,它会减慢我网站的加载时间。
如果服务器在 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;
}
简短回答:
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
引用自 PHP cURL 文档:
CURLOPT_CONNECTTIMEOUT:尝试等待的秒数 连接。使用 0 无限期等待。
CURLOPT_TIMEOUT 允许 cURL 函数的最大秒数 来执行。
CURLOPT_CONNECTTIMEOUT - 尝试等待时的秒数 连接。使用 0 无限期等待。
CURLOPT_TIMEOUT - 最大值 允许 cURL 函数执行的秒数。
使用CURLOPT_TIMEOUT
CURLOPT_CONNECTTIMEOUT
限制cURL等待建立连接的时间。服务器仍然必须查找内容并发送,这通常需要更长的时间。
cURL 还有另一个选项,CURLOPT_TIMEOUT
这是对curl_exec()
函数的限制。将其视为函数返回某些内容所花费时间的限制。这听起来像您正在寻找的内容:
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
我认为你需要使用curl_getinfo()函数
请参阅此 http://php.net/manual/en/function.curl-getinfo.php
代码将是这样的
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);