1


0

HTML Purifierフィルタに属性を追加しますか?

HTML Purifierフィルタ内の要素でrel属性を許可しようとしています。 私はこのガイドhttp://htmlpurifier.org/docs/enduser-customize.htmlをフォローしています。私のコードは次のとおりです。

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');
$purifier = new HTMLPurifier($config);

ただし、HTMLピュリファイアはまだすべてのrel属性を除外しています…​ 私はその問題がどうなるか少し混乱しています。

私が使用するとき:

$config->set('Attr', 'AllowedRel', array('something'));

私はこのエラーが出ます:

_ 注意:非推奨のAPIを使用:ファイル C:\ wamp \ www \ neonet \ application \ modules \ admin \ controllers \ IndexControllerの191行目ではなく、 $ config→ set( 'Attr.AllowedRel'、…​) を使用してください`C:\ wamp \ www \ neonet \ library \ My \ htmlpurifier-4.0.0-standalone \ HTMLPurifier.standalone.php`の1819行目の.php _

編集:

新しいコード

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('Attr.AllowedRel', array('something'));
$purifier = new HTMLPurifier($config);

私が使用するとき:

anchor

Rel属性はまだフィルタリングされます。

1 Answer


2


http://htmlpurifier.org/live/configdoc/plain.html#Attr.AllowedRel[この設定ディレクティブはあなたにとって興味があるかもしれません]。 あなたのコードに関しては、それは私のために働きます。おそらく、あなたはマジッククオートをオンにしているか、キャッシュを適切にフラッシュしていませんか? (その場合はDefinitionRevをぶつけてみてください。)

relを使用しようとしたときのもう1つの典型的なエラーは、XHTML Strictでは機能しないことです。そのDoctypeはrelを定義していないので、Attr.AllowedRelは何もしません(これはdocsで言及されるべきですがそうではありません)。だから、あなたがあなたのW3Cチェックマークを残したければあなたは違うDoctypeを選ぶ必要がありますまたは元のコードを使用してください。