Newphp
Generalemente este tipo de cosas se suele hacer usando expresiones regulares.
Revisa las funciones para el manejo de expresiones regulares de PHP en
http://www.php.net/preg_replace (preg_replace() del ejemplo)
Ejemplo:
Código PHP:
<?php
function code_gen($str){
$str = htmlentities($str);
$str = nl2br($str);
$str=preg_replace("/\[n\](.*?)\[\/n\]/i", "<b>$1</b>", $str);
$str=preg_replace("/\[c\](.*?)\[\/c\]/i", "<i>$1</i>", $str);
$str=preg_replace("/\[s\](.*?)\[\/s\]/i", "<u>$1</u>", $str);
$str=preg_replace("/\[url\](.*?)\[\/url\]/i", "<a href=\"$1\">$1</a>", $str);
return $str;
}
?>
Prueba ocupando esta función, seguro te servirá.
Saludos.