我正在制作一个网站,用于检查网站是否正常运行。我传入要检查的网站的 URL,以下代码将检查该网站是否有效并返回 HTTP 响应代码以及 true 或 false。
function urlExists($url=NULL)
{
if($url == NULL) return false;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode == 0) {
return array (false, $httpcode);
}
else if($httpcode < 400){
return array (true, $httpcode);
} else {
return array (false, $httpcode);
}
}
虽然我知道我正在测试的其中一个站点是实时运行的,但我得到的 HTTP 响应代码为 0。
该网站非常慢,因为它是一个大型网站,服务器不是很强大,因此响应时间可能在 7 到 25 秒之间变化。
如有任何帮助,我们将不胜感激。
谢谢,
山姆
最佳答案
基于这两个链接:-
https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
和
https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html
第一个是:- 设置允许请求花费的最长时间
第二个是:- 连接阶段超时
正如您所说,您点击的 Site URL
需要 7-25 秒的响应时间。同时,由于这两个时间设置,您的CURL 请求
被终止并关闭。
在您的代码中增加这两个时间设置,它会为您工作。
谢谢。
关于php - HTTP 响应代码 0 - 网站正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37880071/