URL parsen
Weini
- php
0 Götz0 Weini0 Götz-1 Sebastian Becker0 Götz0 Sebastian Becker0 Götz
0 Vinzenz
Abend!
Wenn ich die URL http://www.test.de/ parsen möchte, wie schaffe ich es denn dass nur test.de ohne www ausgegeben wird?
Hab nichts gefunden.
Gruss
Hallo Weini!
Wenn ich die URL http://www.test.de/ parsen möchte, wie schaffe ich es denn dass nur test.de ohne www ausgegeben wird?
Indem Du Dich ein wenig mit regulären Ausdrücken befaßt? Siehe auch PHP Manual: XCIX. Regular Expression Functions (Perl-Compatible).
Ansonsten könnte noch dclp FAQ: 8.12. Wie mache ich aus URIs im Text anklickbare Links? und dclp FAQ: 7.3. Wie zerlege ich eine URL? interessant für Dich sein.
Und aus dem Tipps&Tricks-Beitrag Programmiertechnik: Prüfung von E-Mail-Syntax über reguläre Ausdrücke von Christian Kruse kannst Du Dir raussuchen, wie Du eine URL auf formale Korrektheit überprüfen kannst (mußt es halt ein wenig anpassen).
MfG
Götz
Hey!
Damit komme ich nicht ganz klar.
Ich kenne nur $url= parse_url("$url"); echo $url["host"];.
Aber das zeigt ja mit www an.
Gibt es nicht so einen einfachen Befehl der die URL ohne www anzeigt?
Hallo Weini!
Gibt es nicht so einen einfachen Befehl der die URL ohne www anzeigt?
Ich schrieb es bereits: Befasse Dich mit Regulären Ausdrücken.
Damit sollte es relativ einfach gehen.
Zur Not kannst Du sogar mit ner einfachen Stringersetzung drüber gehen (da könnte halt evtl. auch mal was zuviel ersetzt werden, je nachdem was man wie ersetzen läßt).
MfG
Götz
Hallo, Weini,
Zitat:
mixed str_replace ( mixed search, mixed replace, mixed subject)
Diese Funktion ersetzt alle Vorkommen von search innerhalb der Zeichenkette subject durch den String replace. Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion den Vorzug vor ereg_replace() oder preg_replace() geben.
Quelle: http://de2.php.net/str_replace
Beispiel für Dich (ungetestet) ...
$myurl = str_replace('http://','',$myurl);
$myurl = str_replace('www.','',$myurl);
Grüße,
Sebastian
Hallo Sebastian!
Beispiel für Dich (ungetestet) ...
$myurl = str_replace('http://','',$myurl);
$myurl = str_replace('www.','',$myurl);
Genau das meinte ich mit "es könnte ja zuviel ersetzt werden".
Deinen Code muß ich nicht testen sondern nur scharf anschauen um festzustellen, daß er relativ nutzlos ist.
Außer URLs verstümmeln kann er nämlich nichts.
Was würde denn aus http://blablubwww.de werden?
MfG
Götz
Hallo, Götz,
Beispiel für Dich (ungetestet) ...
$myurl = str_replace('http://','',$myurl);
$myurl = str_replace('www.','',$myurl);
» Genau das meinte ich mit "es könnte ja zuviel ersetzt werden".
» Deinen Code muß ich nicht testen sondern nur scharf anschauen
» um festzustellen, daß er relativ nutzlos ist.
» Außer URLs verstümmeln kann er nämlich nichts.
» Was würde denn aus http://blablubwww.de werden?
Schlaumeier! Dein konstruierter Fall existiert auch nur in der Theorie und lässt sich zudem ganz leicht berücksichtigen ...
$myurl = str_replace('http://www.','',$myurl);
$myurl = str_replace('http://','',$myurl);
Voila! Noch irgendwelche Einwände? In 99 % der Fälle sollte dies ausreichen. Und jetzt entfernen wir auch noch den Slash am Ende ...
if(strrpos($myurl,'/')==strlen($myurl)-1) {
$myurl = substr($myurl,0,strlen($myurl)-1);
}
Funktioniert! Und wer möchte kann ja gerne stattdessen eine RegEx-Orgie starten, viel Spaß ...
Grüße,
Sebastian
Hallo Sebastian!
Schlaumeier! Dein konstruierter Fall existiert auch nur in der Theorie und lässt sich zudem ganz leicht berücksichtigen ...
Aber hallo!
Dann nimm doch http://www.de und werde glücklich mit Deinem Code.
Voila! Noch irgendwelche Einwände? In 99 % der Fälle sollte dies ausreichen. Und jetzt entfernen wir auch noch den Slash am Ende ...
Das kommt eben drauf an, was Du mit den Adressen noch vorhast.
Und prüfen, ob eine Adresse überhaupt gültig sein kann solltest Du vorher trotzdem, deswegen würde ich die Prüfung und Zerteilung der Adresse eben gleich in einem Schritt machen, aber mach was Dich freut.
Ganz davon abgesehen, daß www.example.org und example.org überhaupt nicht die gleichen Seiten sein müssen.
MfG
Götz
Hallo Weini,
Ich kenne nur $url= parse_url("$url"); echo $url["host"];.
Aber das zeigt ja mit www an.
Auch bei dem URL dieses Forums (http://forum.de.selfhtml.org)
Gibt es nicht so einen einfachen Befehl der die URL ohne www anzeigt?
Und was sollte dieser einfache Befehl Deiner Meinung nach machen, wenn der URL nicht mit www beginnt?
Beispiele:
http://de.selfhtml.org/
http://web.de/
www ist ein recht häufiger Name, aber nicht vorgeschrieben.
Freundliche Grüsse,
Vinzenz