如何从 HTMLpurifier 中免除标签?

How to exempt a tag from HTMLpurifier?

我目前正在 运行 使用 HTMLPurifier 编写一些代码。但是,我们希望保留一种标签类型。

我查看了问题和文档,但未能找到明确的答案...如何从 HTMLPurifier 中排除特定标签?

我正在寻找符合...

的东西
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', $HTML_Allowed);
$config->set('ExemptHTML', "img,form,pre");

这有点 hacky,但事实证明你可以编写一个 class 来扩展具有父级上的 _tagname 的特定模式并注册它,并创建一个为你的直通量身定制的新验证器(最终切换到以属性为目标以获得更多原子控制,但假设它应该适用于任何一个)。

if (!class_exists("HTMLPurifier_[something]scheme_[mytag]")){
    class HTMLPurifier_[something]Scheme_[mytag] extends HTMLPurifier_[something]Scheme{
        function __construct()
        {
            $this->[required_variable_for_passing_its_category] = true;
        }
        public function doValidate(&$uri, $config, $context) {
            return true;
            // Or, alternatively, you could actually do some validation here.
        }
    }
    HTMLPurifier_[something]SchemeRegistry::instance()->register(new HTMLPurifier_[something]Scheme_[mytag](), $config);
}