webForumDet fria alternativet

eregi_replace()-problem

1 svar · 199 visningar · startad av bgust

bgustMedlem sedan mars 2000138 inlägg
#1

Jag använder eregi_replace för att ersätta taggar av typen:
[röd]röd färg[/röd] med html, men det uppstår problem om man använder dubbla taggar i eftersom den då byter ut första start-taggen och sista sluttaggen så resultatet av [röd]röd färg[/röd]inte röd[röd]röd färg[/röd] blir:
röd färg[/röd]inte röd[röd]röd färg
(och rött alltihop)

min kod ser ftf ut så här:
eregi_replace("\[röd\]([\x01-\x7F,å,ä,ö,Å,Ä,Ö]{1,})\[\/röd\]","<font color=\"#FF0000\">\\1</font>",$input);

Alltså frågan: Hur får man ereg att ersätta första(bästa) matchande mönster?

[Redigerat av bgust den 04 nov 2000]

nicclasMedlem sedan feb. 20001 061 inlägg
#2

Hejsan,

Om du använder preg_replace istället så kan du använda ? för att göra matchningen "ogirig".

<?
$input="[röd]röd färg[/röd]inte röd[röd]röd\nfärg[/röd]";
$ut=preg_replace("/\[röd\]([\x01-\x7FåäöÅÄÖ]+?)\[\/röd\]/im","<font color=\"#FF0000\">\\1</font>",$input);
echo "$ut\n";
?>
"i" ger "case insensitive" och "m" ger "multiline matching".

/nicclas - http://www.nyhetsrubriker.com

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