0

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

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

或者

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

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

4

1 回答 1

1

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

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

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

于 2012-10-26T18:37:52.303 回答