Ok j'ai résolu par moi même:
Sortir le maximum de html des echo php pour avoir des echo uniquement des variable
ça permet au code general de faire des retour chariot
Ensuite pour tout ce qui est texte sortant de la BDD, j'ai utiliser un parsage de type:
$content = str_replace('\n', "<br />\n", $content);
Maintenant, tout est niquel :)