Autor Zpráva
houbeless
Profil
Zdravim,
chci si udělat, takovej skriptík, který by uměl ověřit platnost url adres, tj. jestli daná stránka ještě existuje, a výsledek nějak vyhodnotit, např. dát podnět k jejimu odstranění z db. Je to v podstatě to, co dělají různé webové validátory, bohužel mě ale nenapadá jak bych měl postupovat a na netu jsem nenašel nějaký popis - nic, co by mě popostrčilo. Ale tušim, že by v tom mohl sehrát roli HTML tag <link rel="prefetch"...>, tedy nechci stránku načítat, ale pouze otestovat, ale nenapadá mě jak to udělat v praxi. Nemá zde někdo zkušenost, jak validátory fungují, nebo má-li někdo chuť nadhodit nějaké řešení...
Děkuji
Chamurappi
Profil
Reaguji na houbeless:
Služby ověřující funkčnost odkazů obvykle posílají HEAD požadavky. Servery jim na ně pak odpovídají jen HTTP hlavičkou, ze které lze určit stav a případně i typ zdroje.
houbeless
Profil
Znamená to tedy, že by stačilo poslat požadavek fci Header a pak ověřit jesli dopadla pozitivně?

Např.: if (headers_sent()) { header('Location: http://www.example.com/'); pak .... něco napiš/udělej..
Chamurappi
Profil
Reaguji na houbeless:
Ne. Potřebuješ poslat nový požadavek na dotyčnou URL, nikoliv upravovat hlavičku odpovědi určené pro návštěvníka.
Víc nepovím, PHP neumím.
houbeless
Profil
Mno už jsem objevil ameriku, resp. fci get_headers :)
Takže elegantní řešení je toto:

function file_external_exists($url)
{
$headers = @get_headers($url);
if(preg_match("|200|",$headers[0]))
return(true);
else return(false);
}
JS
Profil *
Geniálně jednoduché. Jednoduše geniální. Vřelé poděkování houbelesovi, že to sem dal pár dní předem, než jsem to já potřeboval a nemusel to hledat v manuálu ;)
woodicek
Profil *
ta funkce ovsem neresi weby, ktere vraci 300 nebo 301 a weby, ktere vyuzivaji presmerovani titulky kvuli cool uri. je tedy potreba prochazet cele pole, ne jen vzit prvni polozku pole.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: