2010-12-16 36 views
11

如何在HtmlPurifier中允許自定義(html5 data- *)屬性?htmlpurifier自定義屬性

輸入:

<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') 
+0

如果你需要改進你的問題,隨時編輯它。如果您有答案,請隨時發佈 – 2010-12-16 22:16:31

回答

18

HTML淨化器定義了屬性的矩陣符合標準和當您嘗試使用未在此矩陣中定義的屬性時抱怨。但是,您可以根據以下步驟添加新的屬性,以使用功能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找到默認屬性類型