htmlpurifier custom attributes

2019-03-18 13:23发布

How to allow custom (html5 data-*) attributes in HtmlPurifier?

Input:

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

leads to an error:

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

HtmlPurifier options are set to:

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

1条回答
Anthone
2楼-- · 2019-03-18 13:35

HTML purifier defines the matrix of attributes that are standard compliant and complains when you try to use an attribute that it is not defined in this matrix. However, you can add new attributes to the default definition using the function HTMLDefinition::addAttribute() as follow:

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

See the definition of HTMLDefinition::addAttribute for more details. 'Text' here is the attribute type, you can find the default attribute type from AttrTypes.php

查看更多
登录 后发表回答