我刚开始在我的php网站中使用nl2br。 基本上我用它来为'生物'字段提供一个很好的布局,以防用户按下回车。
问题是它在我的数据库中存储了确切的换行符<br>
,当我从服务器向文本区域显示相同的数据时,它也会这样做。
如何阻止textarea显示实际的<br>
标记
这是我的示例代码
//grabbing the data in the text area field
$bio = nl2br(htmlentities(trim($_POST['bio'])));
//displaying the value from the database
$row = mysql_fetch_array($my_select_query);
<textarea><?php echo $row['bio']?; ></textarea>
我的textarea中有一些看起来像这样的东西
我怎么能避免这个?
答案 0 :(得分:4)
在将数据存储到数据库之前,不应该nl2br()
,甚至htmlentities()
输入。我倾向于保持合理的原始状态,这样可以在以后更改范围。
如果已经投入使用,您可以创建自己的br2nl()
功能,以反转nl2br()
的效果:
function br2nl($input) {
return preg_replace('/<br\\s*?\/??>/i', '', $input);
}
答案 1 :(得分:0)
在页面上显示字段时使用nl2br功能,而不是在编辑时使用。这样,字段存储了嵌入的换行符而不是HTML片段,这意味着它也可以用于其他目的。
答案 2 :(得分:0)
请勿使用nl2br在银行中记录信息。
因此,当它显示时,它将遵守先前在文本区域中插入的换行符。
//grabbing the data in the text area field
$bio = trim($_POST['bio']);
//displaying the value from the database
$row = mysql_fetch_array($my_select_query);
<textarea><?php echo $row['bio']?; ></textarea>