选择性HTML解码问题

时间:2010-08-18 23:46:40

标签: html

我的数据库中有文本要显示在页面上。我的DB内容包含不同的标签,例如。 <html><b></b><help>(因为允许用户使用任何类型的标签)等。

当我显示页面内容时,我希望将<br>标签解码为空格,而其他标签应保持为普通文本。

拜托,我该怎么办呢?

1 个答案:

答案 0 :(得分:3)

$content = preg_replace('/<br\s?\/?>/', ' ', $content);

echo html_entity_decode($content);

如果您希望将<br>转换为空格,然后将所有HTML与其实体一起显示。

如果我误解了您的问题,并且希望HTML与其等效实体一起显示,请跳过html_entity_decode()函数。

更新

您对OP的评论现在表示您希望<br>成为换行符,因此只需将preg_replace()的第二个参数从' '切换为"\n"即可。

再次更新

等等,我想我现在知道你想要什么。您希望所有标记都显示为编码,但<br>实际上是换行符(即未编码)?好吧,如果您为<br>切换\n,并且没有其他换行符,那么您可以在最终标记上放一个快速且脏的nl2br()

更新

好的,只需执行此操作即可将已编码的<br>恢复为文字<br>

echo str_replace('&lt;br&gt;', '<br>', $content);