[PHP] str_replace et les sauts de ligne

Fermé
xcC - 23 juil. 2006 à 21:27
meganium Messages postés 284 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 21 avril 2016 - 27 août 2014 à 22:08
bonjours

voilà:

<input name="str1"><input name="str2">

$replace = str_replace(stripslashes($str1),stripslashes( $str2), "salut-voilà un texte d'exemple-avec de tiret");

donc si je fait dans le formulaire str1 = - et str2 = \n
ça me donne
salut\nvoilà un texte d'exemple\navec de tiret
et pas
salut
voilà un texte d'exemple
avec de tiret

si quelqu'un pourrait m'aider s'il vous plait
ps: j'ai testé \r\n aussi mais toujours pareil :s
A voir également:

4 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
25 juil. 2006 à 04:26
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)
1
La solution est :

$content = str_replace(CHR(10),'\n',$content);
$content = str_replace(CHR(13),'\n',$content);
0