使用nl2br在我的textarea中显示html标签

时间:2013-09-15 21:11:27

标签: php html nl2br

我刚开始在我的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中有一些看起来像这样的东西 Tesxt area result

我怎么能避免这个?

3 个答案:

答案 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>