PHP remplace \ r \ n avec & lt; br / & gt; ne pas remplacer de nouvelles lignes
Fondamentalement, je n'ai ce script que je suis en train de remplacer \r\n
avec <br />
la mise en forme. J'ai essayé nl2br()
et il n'a pas de remplacer le \r\n
avec <br />
. Voici le code.
$title = isset($post[0]) ? $post[0] : false;
$body = isset($post[1]) ? preg_replace('#(\r|\r\n|\n)#', '<br/>', $post[1]) : false;
echo $title."<br/>".$body;
source d'informationauteur Joshwaa
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de trois
\\\
. À l'intérieur de guillemets simples,\\
se traduit par\
donc\\\r
devient\\r
qui se nourri de lapreg_replace
d'une fonction.PREG moteur a son propre ensemble de séquences d'échappement et
\r
est l'un d'entre eux, qui signifie le caractère ASCII #13. Dire PREG moteur de recherche pour le littéral\r
vous devez passer la chaîne\\r
qui doit être échappé une fois de plus, puisque vous l'avez à l'intérieur de guillemets simples.Si c'est l'affichage
\r
et\n
dans votre code html, cela signifie que ce ne sont pas les retours à la ligne et les sauts de ligne, mais s'en est antislash suivi d'un r ou un n (\\r
par exemple). Vous devez enlever ces barres obliques ou mettre à jour votre regex pour en tenir compte.Que j'ai lu les commentaires de la question, je voudrais suggérer d'essayer de code suivant:
@Tandu mentionné, si vous voyez
\r
ou\n
dans le code html, alors vous devez utiliserstripslashes()
avant d'appliquernl2br()
. Les barres obliques sont automatiquement ajoutés si vous êtes de données est à venir à partir d'un formulaire.De sorte que votre code devient:
Espère que ça aide.
EDIT:
Euh..juste une autre pensée. Si vous utilisez $_POST[0] et $_POST[1]?
Vous pouvez essayer ceci:
essayer le str_replace() fonction