No sé a que llamas BBCode... Supongo que a la negrita, cursiva, subrayado, emoticonos, etc. Bueno eso se hace reemplazando el texto.
Es decir, que por ejemplo cuando tú escribas:
Lo reemplace por HTML:
Échale un ojo a la función
str_replace() (
http://es2.php.net/manual/es/function.str-replace.php )
NOTA: El str_replace() se aplica cuando se muestran los datos en la página, NO al insertarlos en la base de datos o donde sea que los insertes.
Espero haberte sido de ayuda. Saludos!