du kan ju alltid kolla om det viktigaste i en hyperlänk är med som t.ex
http:// och .se/.net/.com
Det gör du med preg_replace tror jag.. Sök och kolla
8 svar · 314 visningar · startad av Alpha II
Hur kollar man om en URL är gilltig?
du kan ju alltid kolla om det viktigaste i en hyperlänk är med som t.ex
http:// och .se/.net/.com
Det gör du med preg_replace tror jag.. Sök och kolla
Vad menar du med gilltig?
om du skall kolla om servern finns kan du ju pinga den
system(ping www.fyndtorg.nu);
om nu din server tillåter dig använda system(); eller exec();
Jag har gjort så att besökaren ska kunna skicka in en länk. Och jag vill kolla om det är en fungerande länk. :)
if(file("http://www.fyndtorg.nu/index.php3")) { print("Adressen funkar"); } else { print("Något knasar sig"); }
kanske?
$file = fopen("din url", "r");
if (!$file) {
echo "nepp. url:en gick inte att hitta";
}
ungefär samma idé som aha var inne på, men detta funkar garanterat!
Thomson,
det funkar inte :(
kolla http://www.alfa2.f2s.com/links.htm
tips; använd @ före, ex
@fopen("din url", "r");
så slipper du felmeddelandet som ploppar upp ifall urlen inte är giltig
Här är en liten halvful funktion som jag gjorde förut, den kollar dels att adressen är korrekt skriven och att det är en server som svarar i andra änden:
function checkURL($url)
{
if (eregi("http://(.*)/(.*)", $url, $out))
{
$serverName = $out[1];
$documentName = "/".$out[2];
}
else if (eregi("http://(.*)", $url, $out))
{
$serverName = $out[1];
$documentName = "/";
}
else return 1;
if (eregi("(.*):(.*)", $serverName, $out))
{
$serverName = $out[1];
$port = $out[2];
}
else { $port = 80; }
$fp = @fopen($url, "r");
if(!$fp) return 2;
fclose($fp);
return 0;
}
Returnerar 0 om allt är ok, 1 om adressen är felformad och 2 om servern inte svarar.
Det som borde läggas till är en koll av vad servern returnerar, är det ett HTTP-fel (t.ex 404) så borde funktionen känna av det.