如何从HTMLpurifier中豁免标签?

问题描述

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

我已经浏览了问题和文档,但是找不到一个明确的答案...如何从HTMLPurifier中排除特定标签

我正在寻找与...类似的东西

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

解决方法

这有点棘手,但事实证明,您可以编写一个类,该类在父级上使用_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);
}