【问题标题】:Filtertering HTML tags过滤 HTML 标签
【发布时间】:2013-04-25 08:50:19
【问题描述】:

除了我选择的一些标签,如<strong>, or <b>, <i>,有什么方法可以过滤所有的html标签?我知道 htmlentities 可以完成这项工作,但它会过滤所有 HTML 标签。

【问题讨论】:

  • 有很多方法。您能否更具体地了解您想要使用的上下文/语言?
  • 我正在使用 PHP 存储数据

标签: php filter html-entities


【解决方案1】:

检查这个:http://www.php.net/strip_tags

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

编辑:实际上,您所说的“过滤器”是什么意思?

【讨论】:

  • 我想排除所有 HTML 标签,除了
  • 好吧,我认为上述解决方案可以完成这项工作。
【解决方案2】:

不,没有安全的方法可以做到这一点。 php 的 strip_tags 将允许您使用这些标签,但这意味着您将容易受到 xss 的攻击。为了避免这种情况,更好的方法是 kses (http://sourceforge.net/projects/kses/) 是 wordpress 使用的。
此外,htmlpurifier (http://htmlpurifier.org/) 是我建议的方式。

在你的上下文中,我会使用 strip_tags 来只保留我想要的标签,然后我会通过 htmlpurifier 过滤器传递结果字符串以确保我不会得到 xss'ed。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-20
    • 2017-04-13
    • 2011-09-30
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多