Проверяем ссылку на существование:
Первым делом разобьем ссылку на составляющие части и проверим записи DNS
$url_p=parse_url($url);
if (!empty ($url_p ['host']) and checkdnsrr($url_p ['host'])){
// Запись DNS существует
}
Когда мы убедились, что такой сайт существует, мы должны получить ответ от сервера:
if ($otvet=@get_headers($url)){
echo substr($otvet[0], 9, 3);
}
Если сервер вернет код 200 или 301/302, тогда страница существует!
полный скрипт:
<?
// Корректность ссылки (URL)
function check_url($url)
{
if(preg_match("@^http://@i",$url)) $url = preg_replace("@(http://)+@i",'http://',$url);
else if (preg_match("@^https://@i",$url)) $url = preg_replace("@(https://)+@i",'https://',$url);
else $url = 'http://'.$url;
if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
return false;
}
else return $url;
}
// Существование ссылки (URL)
function open_url($url)
{
$url_c=parse_url($url);
if (!empty($url_c['host']) and checkdnsrr($url_c['host']))
{
// Ответ сервера
if ($otvet=@get_headers($url)){
return substr($otvet[0], 9, 3);
}
}
return false;
}
// Проверка ссылки
$url='https://tomnolane.ru/';
if ($url=check_url($url))
{
// ссылка корректная
if ($o=open_url($url))
{
echo "Ответ сервера " . $o;
}
else
{
echo "Сервер не отвечает";
}
}
else echo "Некорректная ссылка";
?>