当用户从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
答案 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功能,它将起作用。