我正在使用 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 以便它将剥离任何不具有特定值属性的元素。
例如,我可能想删除
<p class="badParagraph" />
但不是
<p class="goodParagraph" />
有谁知道这是否可行,如果可以,该怎么做?
谢谢!