在没有标签的情况下在textarea中重新填充nl2br保存的内容?

时间:2012-09-04 12:08:26

标签: php nl2br

当用户从textarea中保存文本时:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf

来自textarea,在codeignter中使用nl2br_except_pre函数将其保存在数据库中,如:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf

在div或p标签中输出很好。或者在html输出中。

然而,当再次在textarea内部重新填充时,它显示了标签,这很难看并且使用户感到困惑。

如何在从数据库重新填充保存的值之前清理输出,以便它在textarea中查找如下:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf

而不是这样:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf

3 个答案:

答案 0 :(得分:5)

嗯,粗略的回答是“只使用strip_tags”:

$raw_textarea = 'bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf';

$clean_textarea = strip_tags($raw_textarea);
echo $clean_textarea;

但事实上,还有更多内容:或许您需要担心清理您的输出,而不仅仅是清除不相关的标签。我建议在这个主题上阅读this discussion

答案 1 :(得分:4)

不要在数据库中保存nl2br()数据;你的目标应该是在数据库中存储数据而不是html。

在必要时在视图中呈现时,将nl2br()应用于数据库值。 Textarea字段不需要nl2br()处理btw。

当你输出它时,你也应该在nl2br()之前应用htmlspecialchars()。

答案 2 :(得分:0)

尝试nl2br php功能

它会产生您想要的输出。

是的,这是对的。如果您在显示数据时使用nl2br功能,它将起作用。