webForumDet fria alternativet
Logga in / Bli medlem

[url][/url]

PHP

2 svar · 254 visningar · startad av kris

Medlem sedan sep. 200278 inlägg
Trådstart#1

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

Medlem sedan mars 20007 896 inlägg
#2
$str = preg_replace( "'\[url=(.*?)\](.*?)\[/url\]'is", "<a href=\"$1\">$2</a>", $str );

Bör fungera som du vill.

Medlem sedan sep. 20021 655 inlägg
#3

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.

253 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)