"We are back" « oc.at

Regexp denkfehler bei url-umwandlung

BiG_WEaSeL 22.04.2008 - 11:18 722 2
Posts

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8346
Ich möchte folgendes:

mein Teststring lautet "Das ist ein {Test http://www.test.at} zsdf {mail@tome.at} asdf {test2 http://www.test2.at}"

Code: PHP
$eingabe="Das ist ein {Test http://www.test.at} zsdf {mail@tome.at} tasdf {test2 http://www.test2.at}";
echo $eingabe."<p>";
echo preg_replace("/\{(.*) http:\/\/(.*)\}/siU",'<a href="http://$2">$1</a>',$eingabe);

das heisst ich möchte nur die 2 test klammern umwandeln in links, er wandelt mir aber um:
Code: PHP
Das ist ein <a href="http://www.test.at">Test</a> zsdf <a href="http://www.test2.at">mail@tome.at} tasdf {test2</a>

Wie müsste ich die regexp umändern, dass er {mail@tome.at} nicht umwandelt?

Luzandro

Here to stay
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
statt ".*" "[^}]*"
ich hoffe die syntax stimmt für preg_replace, aber halt nicht alle zeichen, sondern nur alle bis zur schließenden Klammer - ansonsten ist die regexp greedy (was man wohl auch mit irgendeinem flag ändern könnte)

BiG_WEaSeL

Elder
-
Avatar
Registered: Jun 2000
Location: Wien
Posts: 8346
vielen dank :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz