Routine um URL zu überprüfen
Peter
- perl
Hallo,
ich bin auf der Suche nach einer Perl-Routine, die eine URL auf syntaktische Korrektheit überprüft.
Hintergrund: Bei meinem Gästebuch kann man eine Homepage-URL angeben, die überprüft werden soll.
Diese Routine sollte folgendes können:
1. Es muss nur das http-Protokoll berücksichtigt werden
2. diese Routine soll einfach nur "true" oder "false" zurückliefern
Leider habe ich keine sonderlich große Ahnung von Perl, weshalb ich hier auf ein paar gute Tipps hoffe. Ich habe jedoch ein wenig Ahnung von JavaScript und Java und denke, dass es kein Problem für mich sein dürfte, diese Routine einzubauen.
Ich habe auch schon im Internet gesucht, leider jedoch keine für mich brauchbare Lösung gefunden. Es möchte nicht überprüfen, ob es diese URL tatsächlich gibt (da ich Netz- und Serverressourcen sparen will), sondern nur prüfen, ob es diese geben kann. Zudem kann es ja sein, daß jemand seine Seite angibt, die er/sie noch nicht hochgeladen hat...
Ich habe auch schon einige RegEx gefunden, nur leider weiß ich nicht, wie ich diese für meine Zwecke anpassen kann (Bsp.: http://www.foad.org/~abigail/Perl/url2.html).
Wenn mir hier jemand ein paar gute Tipps liefern kann, oder vielleicht sogar eine solche Routine, bin ich Euch sehr dankbar.
Viele Grüße
Peter
Hallo,
Versuch folgendes:
$url = "die url";
$ist_url_ok = &checkurl($url);
sub checkurl {
my $url = $_[0];
if ($url =~ m/http://[^\s]*$/i)
{
return true;
}
else
{
return false;
}
}
Hallo Promicha,
sub checkurl {
my $url = $_[0];
if ($url =~ m/http://[^\s]*$/i)
{
return true;
}
else
{
return false;
}
}
erstmal: 'Unquoted string "true" may clash with future
reserved word'. Nach ersetzen von 'true' durch 1 und 'false'
durch 0:
print checkurl('http://"§(W=E)WQ(E=")$?"E"?EPDÜASDÜ"!?=)"?($)=)%'),"\n";
1
Gruesse,
CK
use Mosche;
ich bin auf der Suche nach einer Perl-Routine, die eine URL auf syntaktische Korrektheit überprüft.
Ich habe auch schon im Internet gesucht, leider jedoch keine für mich brauchbare Lösung gefunden. Es möchte nicht überprüfen, ob es diese URL tatsächlich gibt (da ich Netz- und Serverressourcen sparen will), sondern nur prüfen, ob es diese geben kann. Zudem kann es ja sein, daß jemand seine Seite angibt, die er/sie noch nicht hochgeladen hat...
Nimm doch zB die Routine, die im alten Forum verwendet wurde: http://www.sourceforge.net/projects/selfforum/. Lad dir da die Main-Source (http://sourceforge.net/project/showfiles.php?group_id=21057&release_id=33323) runter und schaue dir die Datei cgi-bin/shared/CheckRFC.pm an. Du kannst diese Datei zB in dein cgi-bin schieben und in dein Script am ANfang schreiben:
use CheckRFC.pm;
Die entsprechende Funktion heisst is_URL().
use Tschoe qw(Matti);
Hi Matti,
vielen Dank für den Tipp. Der ist Gold wert.
Es klappt nun alles sehr gut...
Bis dann
Peter
Hallo Peter,
vielen Dank für den Tipp. Der ist Gold wert.
Es klappt nun alles sehr gut...
Denk dran, is_URL($url,'http') zu benutzen. Sonst wird nur
gecheckt, ob es eine korrekte URL ist, nicht, ob es eine
korrekte HTTP-Url ist.
Gruesse,
CK