eKloe.com - Kubuntu User

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…


Zatím žádný komentář. Buď první :-)

Odpovědět

Hledat: