Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.02.2002, 20:18
thinktank



Ich wollte für ein newssys einen parser einbauen, der
[url="http://www.hallo.de]Hallo[/url] in
<a href="http://www.hallo.de">Hallo</a>
umwandelt.

Zwar ist bei php.net ein Beispiel angegeben, das genau das behandelt, was ich wollte, aber leider haben die Autoren es versäumt, das Beispiel zu erklären ...

Hier ist es nochmal :

$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);

Wozu ist ^ da ? [[:alpha:]] ??

Danke

--

zum Seitenanfang zum Seitenende Profil || Suche
001
22.02.2002, 23:44
bArTmAn



mit ^ negiert man etwas.. also findet er genau das nicht.. mit :alpha: weiß ich aber auch nicht..

--

zum Seitenanfang zum Seitenende Profil || Suche
002
23.02.2002, 10:45
thinktank



Also im ThWboard-Code hab ich das hier gefunden :
$string = eregi_replace('\[url="([^"]*)"\]([^\[]*)\[\/url\]', '<a href="\1" target="_blank">\2</a>', $string);
, aber ich komme mit diesem Buchstabensalat ned klar :

([^"]*)

Die Klammern wurden ja auch in der doku beschrieben, aber ich hab immer
noch nicht genau verstanden, was dieses [^"]* sein soll. Und warum "\ ?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
23.02.2002, 20:59
TheTinySteini



Simpel:

([^"]*) sucht alle Buchstaben, die NICHT gleich " sind. Sprich, bis zum nächsten Anführungszeichen.
Und "\] sagt einfach aus, das nun ein Anführungszeichen kommen muss, und danach ein ]. Da aber ] auch eine Sonderfunktion bei regexps hat, nämlich Buchstabengruppen zu bilden, muss es escaped werden, also ein Backslash davor.
Der Code sucht also nach [url=", gefolgt von allen möglichen Buchstaben außer ", und dann ein "]. Dann wird solange nach Buchstaben gesucht, bis ein [ auftritt, und dann nach [/url]. Zwei Ausdrücke stehen in Klammern, diese werden dann im zweiten Teil per \1 und \2 dereferenziert, also die Fundstellen werden dort eingesetzt.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
004
25.02.2002, 09:52
thinktank



Ok , danke, in eine Richtung gehts jetzt ([url] -> <a href ...> )
Aber in die andere ned... Hier mein Code :

$string = eregi_replace('<a href="http://([^"]*)" target="_blank">([^<]*)</a>','[url="\\1"]\\2[/url]',$string);

Wo liegt der Fehler ?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
01.03.2002, 13:49
thinktank



*hochpost*

--

zum Seitenanfang zum Seitenende Profil || Suche
006
07.03.2002, 14:57
thinktank



*sorry for second hochpost*

--

zum Seitenanfang zum Seitenende Profil || Suche
007
07.03.2002, 17:44
apfelkorn



link zu mehr info:
http: http://www.php4-forum.de/regex.htm

--

zum Seitenanfang zum Seitenende Profil || Suche
008
07.03.2002, 17:45
apfelkorn



*sorry* zweiter post

--


Dieser Beitrag wurde am 07.03.2002 um 17:46 von apfelkorn bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
07.03.2002, 20:49
TheTinySteini



Jo, ich denke mal, du hast da irgendwelche Sonderzeichen oder so drin, die eigentlich escaped werden müssen. Ich seh's grad nicht, welches, hab die nicht alle im Kopf...

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche