0

我正在使用评论框提交评论。用户在输入任何评论并按 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); ?>which 做了这项工作。但是当我尝试发表评论时'n',它可以\'n\'解决这个问题吗?

4

4 回答 4

4

nl2br会成功的。这是一个内置函数,将使用<br>标签添加换行符。

echo nl2br($message);
于 2012-09-09T11:15:25.190 回答
1

更新:

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

stripslashes应该\'n\'像许多其他问题一样解决这个问题。

请注意,这些命令的顺序很重要。如果你先去掉斜线,你会弄乱str_replace。如果你在str_replace之后使用htmlspecialchars,它会弄乱你的.<br/>

于 2012-09-09T11:57:25.343 回答
0

为什么不使用本机nl2br()功能?

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

产量I love<br /> you

于 2012-09-09T11:16:30.617 回答
0

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

例子 :

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

?>
于 2012-09-09T11:21:38.863 回答