Как проверить существует ли сайт?
Возникла такая проблема: нужно проверить существует ли сайт, файл на сайте или страница. Нашел такой код с curl, но он на рабочий сайт и не рабочий выдает всегда, что сайт рабочий:
function is_url_exist($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($code == 200){
$status = true;
}else{
$status = false;
}
curl_close($ch);
return $status;
}
Буду благодарен, если предложите решение
Ответы (1 шт):
Автор решения: Эдуард
→ Ссылка
В PHP для этого есть штатная функция get_headers():
$url = 'http://www.example.com';
$code = get_headers($url)[0];
var_dump($code); // HTTP/1.0 200 OK
Если сайт доступен, то код ответа будет 200, иначе будет другой код, значение которого можно найти в Википедии.
Таким образом, вашу функцию можно существенно сократить:
$url = 'http://www.example.com';
var_dump( urlExists($url) ); // true
function urlExists(string $url): bool
{
return substr(get_headers($url)[0], 9, 3) == 200;
}