J'ai fait un semblant de BBCode sur mon site et il y a une solution qui marche bien ( et en plus, ça n'a pas l'air trop lent) :
Il faut utiliser la fonction php : str_replace(chaine_a_remplacer, chaine_de_remplcement,texte);
en fait au moment où tu écrit le texte dans la base MySql, tu le modifie d'abord en enchînant les conversions :
$texte=str_replace("[G]", '<B>',$texte);
$texte=str_replace("[/G]", '</B>',$texte);
$texte=str_replace("[I]", '<I>',$texte);
$texte=str_replace("[/I]", '</I>',$texte);
$texte=str_replace("[C=red]", '<SPAN Style="color:red">',$texte);
$texte=str_replace("[/C]", '</SPAN>',$texte);
et après tu insère $texte dans la base