Php nl2br()在使用编辑选项时创建额外的新行

Php nl2br()在使用编辑选项时创建额外的新行,php,mysql,nl2br,Php,Mysql,Nl2br,我使用textarea将内容保存在mySQL数据库中,并使用nl2br保留用户使用的换行符 使用nl2br的PHP方法 $description = safe_var($_POST['description']); $text = preg_replace('#[\r\n]+#', "\n", $description); $description_html = nl2br($text); 现在,当我使用更新说明的编辑选项时,每次按下更新按钮都会添加一个新的 这意味着如果第一次我的内容如下所示

我使用textarea将内容保存在mySQL数据库中,并使用
nl2br
保留用户使用的换行符

使用
nl2br的PHP方法

$description = safe_var($_POST['description']);
$text = preg_replace('#[\r\n]+#', "\n", $description);
$description_html = nl2br($text);
现在,当我使用更新
说明的编辑选项时,每次按下更新按钮都会添加一个新的

这意味着如果第一次我的内容如下所示

Line 1
-----one space
Line 2
----- One space
Line 3
然后,如果我用一些单词来更新这个内容,我会得到如下输出,这是不期望的

Line 1
-----one space
-----one space
Line 2
----- One space
-----one space
Line 3
-----one space
Line 4

除非用户提供一个空格,否则有没有办法阻止新行进入已添加的空格。

确保textarea标记在一行中。这是一个很好的例子,说明了为什么在将userdata插入数据库时,只应转义userdata。如果在向用户显示数据时格式化数据,则不会出现此问题。在数据库中用换行符插入文件,用nl2br显示文件,这样,当编辑文件时,不会出现换行符。