webForumDet fria alternativet
Logga in / Bli medlem

eregi_replace

PHP

0 svar · 175 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Trådstart#1

Har en kod för att byta ut <a=#foo>bar</a> mot <a href="#foo">bar</a> men den fungerar inte riktigt som den ska.

$str = eregi_replace("&lt;a=#([[:alnum:]]+)&gt;(.+)&lt;/a&gt;", "<a href=\\"#\\\\1\\">\\\\2</a>", $str);

Så borde den se ut men om man har flera <a=#... så blir det en länk mellan första <a=#... och sista </a>. Hur ska jag göra för att få en länk mellan första <a=#... och första </a>, en mellan andra <a=#... och andra </a>, etc.? Har löst det tillfälligt såhär:

$str = eregi_replace("&lt;a=#([[:alnum:]]+)&gt;([-a-z0-9 :\\._\\+\\?,/\\\\\\'<>;]+)&lt;/a&gt;", "<a href=\\"#\\\\1\\">\\\\2</a>", $str);

EDIT // Jag har använt htmlentities före. Därav <, >, m.m..

EDIT2 // Satte dit alla backslash som webForum tagit bort.

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