You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置HTMLPurifier不对内联style属性进行清理?

如何配置HTMLPurifier保留内联style属性不被修改

要让HTMLPurifier跳过对style属性值的清理和修改,你需要调整两项核心配置:

  • 明确允许元素的style属性(确保不会被过滤掉)
  • 禁用HTMLPurifier的CSS解析功能(避免对style内容做规范化处理)

修改后的代码示例:

require_once 'ezyang/htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();

// 允许所有元素使用style属性,若只需指定元素可改为'div.style,p.style'这类格式
$config->set('HTML.AllowedAttributes', '*.*.style');
// 禁用CSS解析,阻止HTMLPurifier修改style属性的内容
$config->set('CSS.Enable', false);

$purifier = new HTMLPurifier($config);
$dirty_html = '<div style="background-color: rgb(240, 240, 240);"> How configure HTMLPurifier to prevent sanitize of Inline-style Attribute ? </div>';
$clean_html = $purifier->purify($dirty_html);

echo $clean_html;

补充说明

如果仍需要HTMLPurifier过滤非法CSS属性但保留值的原始格式,可以改用CSS.Trusted配置:

$config->set('CSS.Trusted', true);

该配置会让HTMLPurifier信任所有合法CSS属性,不会修改值的格式(如保留rgb(240, 240, 240)的空格和原始写法),但仍会过滤掉不安全的CSS属性(如expression这类)。

内容的提问来源于stack exchange,提问作者user5005768-hd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:34:57