【问题标题】:Disabling all html tags, except some tags I want to allow禁用所有 html 标签,除了我想允许的一些标签
【发布时间】:2012-08-09 17:35:18
【问题描述】:

我想允许<b>, <h1>, <h2> 之类的标签,但仍然在帖子中禁用 HTML。 我怎样才能做到这一点?我可以用 htmlspecialchars 来做吗?

感谢您的帮助,网站和用户真的很有帮助:)。

【问题讨论】:

    标签: php html tags


    【解决方案1】:

    你可以使用 strip_tags http://fr.php.net/manual/en/function.strip-tags.php 第二个参数允许一些标签。

    【讨论】:

    • 谢谢,这就是我要找的答案,我忘记了那个功能:)
    • 对于颜色,您可以使用 preg_replace 和捕获括号。 $new_string = preg_replace('<font style="(\\#[a-fA-F0-9]{3,6})">','the font is $1',$your_string);
    【解决方案2】:

    使用strip_tags()

    http://php.net/manual/en/function.strip-tags.php

    $stripped = strip_tags($text, "<b><h1><h2>");
    

    告诫购买者。那里可能存在一些安全隐患。

    【讨论】:

    【解决方案3】:

    有一个很棒的工具叫做 HTML Purifier 可以完全满足你的要求:) 你应该去看看:http://htmlpurifier.org/

    另一种选择是使用 BBCode,可以在这里找到:http://nbbc.sourceforge.net/

    祝你好运:D

    【讨论】:

    • 我在 PHPBB 中使用文本编辑器,不需要 BBCODES,感谢您提供的信息。但我需要一个 php 函数。
    • 为什么不能使用外部库?尝试自己做这样的事情会带来很多安全风险。像这样的基本安全系统很容易通过,这就是为什么通常最好使用开源解决方案,一旦发现漏洞就会修复。
    • 是的,我知道,这就是我保护它的原因:)
    • 我只能说祝你好运:) 我希望你比黑客更聪明:)
    • 好吧,我是其中一员(White Hat ofc):)谢谢。
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2012-04-25
    相关资源
    最近更新 更多