【发布时间】:2014-02-05 12:58:12
【问题描述】:
我在使用 HTML Purifier 时遇到问题,尽管使用配置选项来避免此类行为,但它会删除标题元素上的 ID。
我现在正在使用:
// set up HTML Purifier for user inputs
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('HTML.Doctype', 'HTML 4.01 Transitional');
$config->set('Attr.EnableID', true);
$config->set('HTML.Trusted', true);
$purifier = new HTMLPurifier($config);
然后我给它一个字符串,例如:
<h6 id="1843804297">This is a title</h6><h5 id="1979691494">This one too.</h5><h3 id="932393874">I think you see where this is going.</h3>
我还尝试为带有 ID 的标题创建白名单条目,但无济于事,甚至直接操作存储在 $config 对象中的默认值。
$config->def->defaults['Attr.EnableID'] = true;
ID 很重要,因为它们由 PHP 脚本分配,存储在 MySQL 中,然后由 JS 导航系统获取。它们需要从用户那里得到反馈,因为它们通常在后续内容更新时保持不变。
【问题讨论】:
标签: php html filtering user-input htmlpurifier