nl2br()在textarea中使用BBCode和HTML代码

时间:2012-10-26 18:28:50

标签: php html tags nl2br

我有一个textarea,用户可以使用BBCode和HTML代码在数据库中插入新闻。当我想在网站上显示这个新闻时,PHP脚本将BBCode转换为HTML实体并转换HTML标准保留HTML标签的新闻内容(从数据库获取)。问题是当我想使用 nl2br()函数将换行符转换为<br />标记时,因为在{+ 1}}之后也添加了<br />,例如:

<li>Some text</li><br />

<table><br />
<tr><br />
etc.

有没有办法避免这个恼人的问题?

1 个答案:

答案 0 :(得分:1)

我正在考虑正则表达式。只有当文本没有被<p></p>分隔时(这在我看来会更好一些),这才有效。

$formattedText = preg_replace("/(<[a-zA-Z0-9=\"\/\ ]+>)<br\ \/>/", "$1", nl2br($text));

如上所述,另一种选择是在特定标签内查找文本,并环绕<p>标签。