La solución pasa por utilizar un par de funciones PHP de tratamiento de cadenas.
Una para convertir los saltos de línea en cadenas: nl2br() Otra para convertir los caracteres especiales a sus códigos correspondientes: htmlentities()
Las dos funciones reciben la cadena y devuelven la misma cadena alterada.
Para utilizarlo, supongamos que tienes una cadena en una variable $cadena y que la quieres convertir a HTML e imprimirla en pantalla:
echo nl2br(htmlentities($cadena));