15

HtmlPurifierでカスタム(html5 data-*)属性を許可するには?

入力:

<img src="/my.jpg" data-type="5" alt="" />

エラーにつながります:

Attribute 'data-type' in element 'img' not supported 
(for information on implementing this, see the support forums) 

HtmlPurifier オプションは次のように設定されています。

'HTML.AllowedAttributes' => array('img.src', 'a.href', 'img.data-type')
4

1 に答える 1

23

HTML purifier は、標準に準拠した属性のマトリックスを定義し、このマトリックスで定義されていない属性を使用しようとすると文句を言います。ただし、次のように関数 HTMLDefinition::addAttribute() を使用して、デフォルトの定義に新しい属性を追加できます。

$config = HTMLPurifier_Config::createDefault();
$def = $config->getHTMLDefinition(true);
$def->addAttribute('img', 'data-type', 'Text');
$purifier = new HTMLPurifier($config);

詳細については、 HTMLDefinition::addAttributeの定義を参照してください。'Text'ここに属性タイプがあります。デフォルトの属性タイプはAttrTypes.phpから見つけることができます

于 2011-02-17T15:22:07.007 に答える