Vouich, <br> pour un saut de ligne dans uen présentation de page html, et \n pour un saut de ligne de texte (qui ne se verra poas dans une page html présentée mais dans la source de la page, ou dans une page purement textuelle).
Quand on envoie \n dans un formulaire, le caractère spécial de saut de ligne n'est pas interpété, tu auras juste un antislash et un n.
Pour pallier à ça tu peux remplacer les '\n' par des "\n" (en php, les guillemets simples ne cherchent pas les caractères spéciaux, à l'inverse des guillemets doubles):
str_replace('\n',"\n",$expression)