$str = preg_replace( "'\[url=(.*?)\](.*?)\[/url\]'is", "<a href=\"$1\">$2</a>", $str );
Bör fungera som du vill.
2 svar · 254 visningar · startad av kris
jag använder följande kod för att kolla om en sträng innehåller [url=adress]text[/url] och detta ändras då till <a href="adress">text</a>
$content = eregi_replace("(\[url=)(([url]http://[/url]|[url]https://[/url]|[url]ftp://[/url] |mailto:)(([[:alnum:]]|[[:punct:]])*))\](([[:alnum:]]|[[:punct:]]|[[:space:]]|[ÅåÄäÖö])*)\[/url\]","<a href=\"\\2\" target=\"_blank\">\\6</a>",$content);
Problemet är att det bara funkar att ha en URL i strängen, hur gör jag om jag har flera?
/kris
$str = preg_replace( "'\[url=(.*?)\](.*?)\[/url\]'is", "<a href=\"$1\">$2</a>", $str );
Bör fungera som du vill.
Använd dig då istället av preg_replace().
Tänk på att du anger bakåtreferenser som \\n (det är kanske bara forumet som förstör det du har skrivit).
EDIT:
Lite sent ute dock.