Hoi allen.
Ik had eerst een zootje regexps die na elkaar werden uitgevoerd: (jah, dit gaat wederom over de overbekende UBB tags
)
Werkt hartstikke leuk. Maar nu dacht ik ff slim te zijn door te optimaliseren (als daar überhaupt sprake van is):
Dit werkt op zich wel, behalve wanneer er tags genest worden (dus een i binnen een u bv). Dan worden de binnenste tags helemaal niet verwerkt.
Is er een truukje waarmee ik kan zeggen dattie opnieuw moet beginnen met zoeken vanaf het begin ofzo?
Ik heb al wat gekeken bij de informatie die ze bij php.net beschikbaar hadden gesteld, maar daar vond ik ook geen oplossing. (Misschien zie ik iets over het hoofd.
) Wél werd er iets interessants genoemd over recursiviteit, maar dat verhaal snapte ik niet echt. 
Any help would greatly be appreciated.
Ik had eerst een zootje regexps die na elkaar werden uitgevoerd: (jah, dit gaat wederom over de overbekende UBB tags
code:
1
2
3
4
5
6
7
8
9
10
| $tags = array("b", "u", "i", "tt"); for ($i = 0; $i < sizeof($tags); $i++) { $t = $tags[$i]; $open1 = quotemeta("[$t]"); $close1 = quotemeta("[/$t]"); $open2 = "<$t>"; $close2 = "</$t>"; $expression = "!$open1(.+)$close1!Uis"; $replacement = "$open2\1$close2"; $text = preg_replace($expression, $replacement, $text); } |
Werkt hartstikke leuk. Maar nu dacht ik ff slim te zijn door te optimaliseren (als daar überhaupt sprake van is):
code:
1
2
3
4
5
| $text = preg_replace( "!\\[([bui(tt)])\](.+)\\[/\1\]!Uis", "<\1>\2</\1>", $text ); |
Dit werkt op zich wel, behalve wanneer er tags genest worden (dus een i binnen een u bv). Dan worden de binnenste tags helemaal niet verwerkt.
Is er een truukje waarmee ik kan zeggen dattie opnieuw moet beginnen met zoeken vanaf het begin ofzo?

Any help would greatly be appreciated.