用br错误替换新行

时间:2012-09-09 11:13:49

标签: php

我正在使用评论框提交评论。用户在输入任何注释时按Enter键以获取新行,然后在提交后我使用$update=mysql_real_escape_string($update);将其更新为数据库以用于安全目的。

但是当显示该评论时,新行被字母“n”替换,整个句子应该是这样的

John is awesome
He loves food 

就像:

John is awesome nHe loves food

我在堆栈中搜索错误并找到了解决方案:

我用<?php echo $message; ?>替换<?php echo str_replace('\n',"<br/>", $message); ?>来完成这项工作。但是当我尝试评论'n'时,问题就出现了\'n\'吗?

4 个答案:

答案 0 :(得分:4)

nl2br会做到这一点。它是一个内置函数,可以使用<br>标记添加换行符。

echo nl2br($message);

答案 1 :(得分:1)

更新:

$output = htmlspecialchars($message);
$output = str_replace('\\n','<br/>', $output);
$output = stripslashes($output);
echo $output;

stripslashes应该处理\'n\'问题以及许多其他问题。

请注意,这些命令的顺序很重要。如果你先删除斜线,你就会弄乱 str_replace 。如果您在 str_replace 之后使用 htmlspecialchars ,则会弄乱您的<br/>

答案 2 :(得分:0)

为什么不使用原生nl2br()功能?

$foo = nl2br("I love\n yo");

收益I love<br /> you

答案 3 :(得分:0)

尝试使用<?php $var = preg_replace("[\n]","<br/>",$comment); ?>

示例:

<?php
$text = "John is awesome
He loves food";
$echo = preg_replace("[\n]","<br/>",$text);
echo $echo;

?>