У меня есть внешние домены, такие как www.php-einfach.de и проверьте, существуют ли они с checkdnsrr()
первый. Теперь я должен проверить, существует ли конкретная страница в этом домене, например www.php-einfach.de/impressum. Я нашел несколько решений для этого, но все они используют тип протокола. И я не знаю, является ли протокол http или https. Я думал, что получаю правильный результат, всегда используя http, потому что, по крайней мере, на каждом сайте есть это. Но с этой функцией:
function check_url($url){
$file_headers = @get_headers($url);
if(!$file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found') {
return false;
}
else {
return true;
}
}
Я получаю разные результаты при использовании http и https с этим www.php-einfach.de/impressum как $url
,
Поэтому я использую эту другую функцию:
function check_protocol($url){
$ch = curl_init("https://".$url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode >= 200 && $httpcode < 400) {
return "https://";
}
else{
return "http://";
}
}
чтобы определить, является ли протокол http или https.
Поэтому, если я хочу проверить URL, я должен сделать что-то вроде:
check_url(check_protocol('www.php-einfach.de')."www.php-einfach.de/impressum")
Но я уверен, что сделал этот путь сложным. У кого-нибудь есть более простое решение?
Спасибо
Задача ещё не решена.
Других решений пока нет …