preg_replace url fehler...

sbkbros

Mitglied
Hallo,
Die funktion :
PHP:
$str = preg_replace( "/\[url=(.*?)\](.*?)\[\/url\]/ism", "<a href=\"\\$1\">\\2</a>", $str);

z.b: Wenn im Text Klick mich

Gibt er mir "Klick mich" als Links aus aber der link wird nicht korrekt ausgegeben.
Sonderd meine url wir ausgegeben!

Habe es schon ohne $ also.... "<a href=\"\\1\">\\2</a>", $str);probiert funktionert aber nicht...
Dann zeigt er mir den Link so an "www.xxxx.com>Klickmich" an.
 
Zuletzt bearbeitet:
Für bbcodes wie von dir verwendet gibt es stringparser, wo du ganze Gruppen definieren kannst - ich verwende: http://www.christian-seiler.de/projekte/php/bbcode/doc/de/kapitel1.php

url-tags parse ich folgendermassen:
PHP:
$text = ' [ url=http://www.moove24.de]Moove24.de[ /url] ';

echo preg_replace( "/\[ url=(.*?)\](.*?)\[\ /url\]/", "<a href=\"\\1\">\\2</a>", $text );

Einziger Untreschied zwischen deinen aufrufen ist folgendes:
PHP:
<a href=\"\\1\">\\2</a>
verwendest du unten oben aber:
PHP:
<a href=\"\\$1\">\\2</a>

und mit $1 kann er nix anfangen ... ist mir aber auch erst beim zweiten Blick aufgefallen ... ;)

Gruß,
Christian
 
Zuletzt bearbeitet:
Danke für den Tipp leider funktionert es nicht!

Wie oben beschr. zeigt er mir dann
den Link so an www.xxxx.com>Klickmich an.

Und nicht wie es gehört das KLICKMICH ein link ist und wenn man draufklickt das mann auf die gewünschte Seite weitergeleitet wird!
 
Hast du einmal mein Beispiel genommen und gescjaut ob es funktioniert? ==> Kopier dies doch einmal einfach in deine Seite und schau ob es anderes dargestellt wird, denn bei mir es anstandslos ... vielleicht hast du ja auch zeilenumbrüche o.Ä. drin?

Hast du evt. einen "Badwordfilter" o.Ä. in Benutzung der vorher schon filtert? (htmlentities() htmlspecialchars oder Ähnliches ) Ich habe mich neulich fast todgesucht als ich in den Templates von mambo etwas ändern wollte ...

Viele Grüße,
Christian
 
Zurück