用br错误替换新行


replacing new line with br error

我正在使用一个评论框来提交评论。当用户输入任何评论并按enter键输入新行时,出于安全目的,我使用$update=mysql_real_escape_string($update);将其更新到数据库。

但当显示该评论时,新行被字母表"n"和整个句子所取代,整个句子应该是这样的

John is awesome
He loves food 

类似于:

John is awesome nHe loves food

我搜索了堆栈中的错误,找到了一个解决方案:

我用<?php echo str_replace(''n',"<br/>", $message); ?>代替了<?php echo $message; ?>,它完成了这项工作。但当我尝试评论'n'时,结果是''n'',对此有什么解决方案吗?

nl2br将发挥作用。这是一个内置函数,将使用<br>标记添加换行符。

echo nl2br($message);

更新:

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

条带斜杠应该处理''n''问题以及许多其他问题。

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

为什么不使用本机nl2br()函数?

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

得到CCD_ 11。

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

示例:

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