如何从 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);
}
我目前正在 运行 使用 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);
}