Hilfe bei Regex (mit preg_replace)

Miraculixx

Erfahrenes Mitglied
Hallo!

Ich habe mir aus einem Tutorial aus diesem Forum folgende Regex-Funktion gesucht:
PHP:
$text = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="http://$1" target="_blank">$2</a>', $text);

Diese soll mir einen String mit einem URL-Tag in html-code umwandeln, zB:
[u.rl=www.google.at]Google[/u.rl] --> <a href="http://www.google.at" target="_blank">Google</a>
(Ohne den Punkten bei u.rl)

Ich habe nun selbständig versucht, mir das Gegenstück zusammen zu basteln. Also eine Funktion, die mir aus dem html-Code wieder meinen String mit URL-Tags liefert. Dabei ist bei mir folgendes herausgekommen:

PHP:
$text = preg_replace('<a href="http://([^ ]+).*" target="_blank">(.*)</a>', '[ url=$1]$2[ /url]', $text);

Wenn ich das ausführen möchte, erscheint jedoch folgender Fehler:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '(' in admin.php on line 168

Ich hab mich nun schon durch eine Vielzahl von Regex-Tutorien durchgearbeitet, aber ich weiß trotzdem nicht, was ich mit dieser Fehlermeldung anfangen soll.
Hoffentlich kann mir hier jemand weiterhelfen - vielen Dank schon mal im Voraus!

PS: habe mir jetzt noch das Programm "RegexBuddy" heruntergeladen und darin die Funktion getestet. Da läuft sie problemlos.... Ich weiß da echt nicht mehr weiter
 
Hi,

wie PHP dir schon sagt hast du ein Problem bei
PHP:
preg_replace--->(' <---
, daß liegt daran das du kein Delimiter angegeben hast.

versuch mal das hier:

PHP:
$text = preg_replace('#<a href="http://([^ ]+).*" target="_blank">(.*)</a>#', '[ url=$1]$2[ /url]', $text);

Im Beispiel von dieser Seite ist der Delimiter "/"

gruß
 
Zuletzt bearbeitet:
WOW, Danke, funktioniert einwandfrei! :)

Aber kannst du mir noch erklären, wozu dieses Delimiterzeichen gut ist? Hab das in den Tutorials nirgends gefunden...
 

Neue Beiträge

Zurück