Como bien ha comentado antes htmlentities no convierte los espacios, ya lo había probado antes y no funcionaba.
Ya he conseguido solucionarlo, lo que he usado es str_replace
Una pregunta, a ver si me podéis decir cómo slucionarlo:
La línea esta para los espacios que comento es:
Código PHP:
<p><?php echo nl2br(str_replace(" "," ",$cadena));?>
Si la ponía así directamente perdía el formato, respeta los espacios y los saltos, pero aparece todo en una línea, es decir no respeta la etiqueta <p>. Lo que he hecho es dentro del caracter a buscar le he puesto que busque dos espacios y los sustituya por dos veces y así sí lo hace.
¿Hay otra forma de hacerlo? ¿Por qué hace eso?
Saludos y gracias