webForumDet fria alternativet

eregi_replace

0 svar · 175 visningar · startad av Nexus86

Nexus86Medlem sedan okt. 20022 683 inlägg
#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.

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb