Gilltig URL?
8 svar · 312 visningar · startad av Alpha II
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
------------------
//Du ska inte slänga vatten över ån.
PHP vs ASP (10 - 0)
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();
------------------
www.fyndtorg.nu/alex
if(file("http://www.fyndtorg.nu/index.php3")) { print("Adressen funkar"); } else { print("Något knasar sig"); }
kanske?
------------------
www.fyndtorg.nu/alex
$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!
------------------
"Snälla människor kommer till himmlen, andra kommer hur långt som helst"
Thomson,
det funkar inte :(
kolla http://www.alfa2.f2s.com/links.htm
------------------
Alpha II med rätt att döda
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.
------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny