问题描述
我目前正在使用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);
}