Я делаю сайт, на котором будет проверяться, работает ли сайт и живет ли он. Я передаю URL-адрес сайта, который я бы хотел проверить, и следующий код проверяет, жив ли сайт и возвращает код ответа HTTP, а также true или false.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);
}
}
С одним из сайтов я тестирование, хотя я получаю код ответа HTTP 0, хотя я знаю, что сайт живет и работает.
Сайт очень медленный, так как его большой сайт на не очень мощном сервере, поэтому время отклика может варьироваться от 7 до 25 секунд.
Любая помощь была бы принята с благодарностью.
Спасибо,
Sam
, так как время ответа сервера составляет 7-25 секунд, и вы устанавливаете 'CURLOPT_CONNECTTIMEOUT' на 5 секунд, поэтому вы получаете 0, потому что соединение закрывается до того, как будет получен какой-либо ответ. измените его на 300 и проверьте: https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html –
@ Спасибо за то, что это действительно помогло. Мне также нужно было увеличить CURLOPT_TIMEOUT до 300. –