PHP: Jak zjistit, že URL existuje
by LucaS on Dec.08, 2010, under PHP
Nedávno jsem potřeboval ověřovat, zda URL odkazy z mé stránky na jiné opravdu existují. V php manuálu jsem našel jednoduchý způsob jak to zjistit. V php5 je funkce get_headers, které, když podstrčíme nějakou adresu, nebo cestu k souboru, vrátí “hlavičku”. Podle kódu hlavičku pak lze zjistit, zda zdroj opravdu existuje.
$url = 'http://www.ekloe.com'; if(@get_headers($url, 1) == true) { print_r(get_headers($url, 1)); } else { echo "CHYBA"; };
Pokud stránka existuje, výsledek bude následující:
Array ( [0] => HTTP/1.1 200 OK [Date] => Wed, 08 Dec 2010 07:23:08 GMT [Server] => Apache [X-Pingback] => http://www.ekloe.com/xmlrpc.php [Link] => ; rel=shortlink [Set-Cookie] => PHPSESSID=c450ee0d7380370e23006c958fac8893; path=/ [Connection] => close [Content-Type] => text/html; charset=UTF-8 )
Takže když si z pole vytáhneme hned první hodnotu HTTP/1.1 200 OK víme podle 200, že zdroj (stránka) existuje. V případě přesměrování tam bude 301 nebo 302. Chyba na serveru je 500 apod.
Pokud odkazujete na nedůvěryhodné stránky, tak kromě rel=”nofollow” v url můžete ještě zkontrolovat, zda existuje, než odkaz zobrazíte…
