[PHP]Jak sprawdzić nie działający adres URL?
Postanowiłem napisać krótki artykuł o tym, jak sprawdzić nie działający adres URL?
Uważam, że jest to przydatne rozwiązanie, bo dzięki temu możemy uniknąć problemów z dotarciem do treści na stronie.
Skrypt ten opiera się na bibliotece cURL znajdującej się standardowo w większości serwerów obsługujących PHP. Co będzie można zobaczyć w dalszej części artykułu.
Zasada jest prosta. Najpierw tworzymy formularz w HTML, który będzie nam służył do wprowadzania danych strony www do sprawdzenia:
<form action="broken-url.php" method="post"> <label for="url"><span>Wpisz adres strony (bez http://):</span><input type="text" name="url" /></label> <label><input type="submit" name="submit" value="Wyślij" /></label> </form> |
function sprawdz($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); $naglowki = curl_getinfo($curl); curl_close($curl); return $naglowki['http_code']; } |
< ?php function sprawdz($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); $naglowki = curl_getinfo($curl); curl_close($curl); return $naglowki['http_code']; } if(!isset($_POST['submit'])) { ?> <form action="broken-url.php" method="post"> <label for="url"><span>Wpisz adres strony (bez http://):</span><input type="text" name="url" /></label> <label><input type="submit" name="submit" value="Wyślij" /></label> </form> < ?php } else { $url = $_POST['url']; $powrot = '<br/>Wróć do formularza'; if(!filter_var($url, FILTER_VALIDATE_URL)) { $stan = sprawdz($url); if($stan == '200') { echo 'Link jest prawidłowy i działa.'.$powrot; } else echo 'Link nie istnieje!'.$powrot; } else echo 'Podano błędny adres URL.'.$powrot; } ?> |
Demo z tego artykułu można zobaczyć pod tym adresem: PHP sprawdzenie adresów www.
Mam nadzieję, że ten artykuł okaże się dla Ciebie przydatny.