Hi,
erstmal eine kurze Frage: Willst du eine fertige Lösung vermeiden?
Es gibt schließlich PHP Klassen für BBCodes - die sparen viel Arbeit.
Du musst dir keine Gedanken um Cross Site Scripting (bei dir vermutlich möglich) kümmern, bekommst auch bbcodes in bbcodes hin (bei dir vermutlich nicht möglich), uvm.
Es gibt auch schon ein paar Threads zum Thema BBCode hier im Forum. Zum Beispiel hier:
BBCODE
Ohne nl2br klappt dein Code übrigens auch nicht.
|
PHP Quellcode
|
1
|
// $str = nl2br($str);
|
Willst du wirklich noch das eigentlich Problem lösen? Dann müssen wir uns die Regex mal anschauen. Ich glaube es fehlt ein Regex Modifier. S, s, u oder U.