我正在使用HtmlPurifer来清理html输入。
这是我的HtmlPurifer配置:
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('HTML.AllowedAttributes', "*.style,a.href,a.target,img.src,img.height,img.width");
$config->set('HTML.AllowedElements','a,p,ol,li,ul,b,u,strike,br,span,img,div');
$config->set('HTML.ForbiddenAttributes', "*@class,div@*");
$config->set('Attr.AllowedFrameTargets', array('_blank'));
$config->set('CSS.AllowedProperties', array('text-decoration', 'font-weight', 'font-style'));
$config->set('AutoFormat.RemoveSpansWithoutAttributes', true);
$config->set('AutoFormat.RemoveEmpty', true);
$purifier = new HTMLPurifier($config);
$sanitized = $purifier->purify($data);
像魅力一样。
但是...
我想知道是否可以配置HtmlPurifer,以便它将剥离任何没有具有SPECIFIC值的属性的元素。
例如,我可能想删除
<p class="badParagraph" />
但不是
<p class="goodParagraph" />
有谁知道这是否可能,如果有的话,该怎么办呢?
谢谢!
答案 0 :(得分:0)
正如相应的HTML Purifier线程中所提到的,目前还没有一种简单的方法可以做到这一点。注射器是一种相当通用的机制,您可以通过它实现这一点;在这种情况下,请查看RemoveEmpty以获得一些灵感。