我正在製作一個網站,檢查網站是否正常工作和生活。我傳入我想檢查的網站的URL,下面的代碼將檢查該網站是否有效,並返回HTTP響應代碼以及是或否。HTTP響應代碼0 - 網站正在工作
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);
}
}
隨着我測試,雖然我得到的0 HTTP響應代碼,即使我知道該網站是生活和工作的場所之一。
該網站是非常緩慢的,因爲它是一個非常強大的服務器上的大型網站,所以響應時間可以在7到25秒之間變化。
任何幫助將不勝感激。
感謝,
山姆
因爲服務器的響應時間是7-25秒,並且您將'CURLOPT_CONNECTTIMEOUT'設置爲5秒,這就是爲什麼您得到0的原因,因爲在響應到來之前連接已關閉。將其更改爲300並檢查: - https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html –
@Anant謝謝,真的有幫助。我還需要將CURLOPT_TIMEOUT增加到300。 –