Det blev lite konstigt eftersom webforum tydligen gjorde om & mot & men jag tror ni förstår vad jag menar.
Jag tänkte tillåta att man skriver viss html-kod i gästböker och dylikt. För att ha lite kontroll på det hela så började jag med att koda allt med htmlentities.
Min tanke är att sedan ersätta t.ex. <B> med <B>. Dessutom vill jag att de avslutar den korrekt. Detta har jag lyckat lösa med följande regexp:
$retStr = eregi_replace("<(B)>(.*)</(B)>","<\\1>\\2</\\3>",$retStr);
Kanske inte jättesnyggt men det fungerar.
Nu till första frågan: Jag vill ange flera taggar i samma regexp men vill att den ska avslutas korrekt, dvs jag vill att <B>text</B> och <I>text</I> ska tillåtas men inte <B>text</I>.
Detta skulle jag vilja göra ungefär så här men det fungerar inte eftersom \\1 bara fungerar i ersättningstexten.
$retStr = eregi_replace("<(B|I)>(.*)</(\\1)>","<\\1>\\2</\\3>",$retStr);
Några förslag på hur man löser det.
Nästa problem: Jag vill kunna tillåta <UL><LI>Text</LI><LI>Text</LI><UL>.
Problemet om jag använder ovanstående konstruktion är att * är glupsk och sväller så mycket som mycket. Resultatet av (.*) blir därför Text</LI><LI>Text istället för bara Text. I Perl skriver man (.*?) tror jag men det fungerar inte. Det stod någonting om (U?) i manualen men jag fattade inte.
Tacksam för svar.
