Pour ton BBCode je vois que les Regex, enfin c´est la seule technique que je connais. En gros tu crées une Regex (regulary expression) qui dit : "Quand tu vois un text entre [b] et [/b] tu le mets en gras", ça se présente sous cette forme :
$texte=preg_replace("#^\[b\]([a-zA-Z0-9._-]+)[/b\]
- i", "<strong>$1</strong>", $texte);
En gros tu stockes une chaîne de caractère dans $texte, par exemple "Coucou [b]Ca va ?[ /b]", puis tu remplaces le texte entre [b] et [/b] par le deuxième argument de la fonction preg_replace, et tu stockes tout ça dans $texte.
A la fin tu auras donc $texte="Coucou <strong>Ca va ?< /strong>". Le i à la fin signifie que ça marche aussi avec [B] et [/B].
C´est la meilleure méthode que je connaisse pour répondre à ta question, j´ai pas lu les autres messages j´espère ne pas avoir fait un doublon 