Hola!
Te explico algunas cositas...
Si le pasas valore a php de un formulario de un textarea, por ej, y luego los muestras con un echo se se va a mostrar todo continuado, o sea que no se te respetan los saltos de linea ni nada de eso, es porque el lenguaje HTML necesitas que pongas un tag <br> para que esto ocurra. para eso utilizas la funcion nl2br().
Por otro lado caracteres como la "ñ", "<", ">", etc. no se mostraran correctamente si no utilizas la funcion htmlentities(), ya que esta "traduce" estos caracteres a entidades html. Por ej al < lo convierte a <. Usando esto te ahorras posibles problemas de seguridad.
Si ademas quieres que los titulos se vean en negrita debes darle a php algo para que "descubra" que linea del archivo corresponde al titulo, por ej encierra dicho texto con algunos tags inventados por vos (como el codigo Vb) por ej:
$texto = " hola hola hola [negrita] esto si va en negrita [/negrita] chau chau chau chau";
$yata = ereg_replace( "\[negrita\](.*)\[/negrita\]", "<b>\\1</b>", $texto );
echo $yata;
Aca te dejo otro link:
http://www.php.net/ereg_replace