php nl2br反之亦然问题

php nl2br反之亦然问题,php,nl2br,Php,Nl2br,我目前正在使用textarea,用户可以在其中提交输入。我正在使用phpnl2br将任何新行转换为,如下所示: $review_desc = nl2br($this->_getParam('comment')); test1<br /> test2<br /> test3<br /> test4<br /> 但现在,当用户编辑他们的文本时,我遇到了问题,因为我得到的内容如下: $review_desc = nl2br($this->

我目前正在使用textarea,用户可以在其中提交输入。我正在使用php
nl2br
将任何新行转换为

,如下所示:

$review_desc = nl2br($this->_getParam('comment'));
test1<br />
test2<br />
test3<br />
test4<br />
但现在,当用户编辑他们的文本时,我遇到了问题,因为我得到的内容如下:

$review_desc = nl2br($this->_getParam('comment'));
test1<br />
test2<br />
test3<br />
test4<br />
test1
测试2
测试3
测试4

当用户在textarea中编辑其内容时,它会在行尾添加新的

。我如何防止这种情况?此外,建议是否有其他替代文本区的形式,它可以检测超链接等?谢谢

您可以将用户提供的文本区域内容存储在数据库中;所以不用打电话给nl2br

然后只调用nl2br,一旦您从数据库检索到相同的文本并希望打印到网页


当您希望用户在textarea中再次编辑它时,请从数据库中检索当前内容,这次不要调用nl2br。

如果您使用“\n”保留文本,您可以简单地在textarea中插入文本,但是如果您使用

保留文本,在textarea中插入文本之前,您应该替换“\n”上的

,例如,
$text=str\u replace(“
”,“\n”,“$text”)
或尝试此页面中的内容,在注释中有许多函数用于替换\n

上的

,您是否在之后对内容进行HTML转义?@deceze您的意思是在呈现给用户再次编辑之前进行转义?我的意思是类似
@deceze的功能尚未尝试,让我来解决。Thanks@deceze完全是OT,但你为什么不考虑在这里做国防部的工作?我看到你对PHP标记的问题非常活跃