1

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);

魅力のように機能します。

しかし...

SPECIFIC 値を持つ属性を持たない要素を削除するように HtmlPurifer を構成できるかどうか疑問に思っています。

たとえば、削除したい場合があります

<p class="badParagraph" />

だがしかし

<p class="goodParagraph" /> 

これが可能かどうか、また可能であればどうすればよいか誰にもわかりませんか?

ありがとう!

4

1 に答える 1

0

対応する HTML Purifier スレッドで述べたように、現在これを行う簡単な方法はありません。インジェクターは、これを実装できるかなり一般的なメカニズムです。その場合は、インスピレーションを得るために RemoveEmpty を見てください。

于 2011-08-22T04:13:38.860 に答える