我正在使用评论框提交评论。用户在输入任何注释时按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\'
吗?
答案 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;
?>