【发布时间】:2015-05-07 13:41:15
【问题描述】:
我正在使用 htmlpurifier。我有一些疑问如下。
1- 我的配置文件包含
$config->set('HTML.Trusted' ,true);
$config->set('CSS.Trusted', true);
但是,一个简单的 Google 让我进入了建议不要使用 *.Trusted as "true" 的页面。
我无法理解为什么我们不应该将 *.Trusted 设置为 true?你能解释一下吗?因为如果我删除它而不是我不会得到内联 css?甚至 CSS.AllowTricky 也无济于事。
2- 我发现不允许使用 HTML5 和 CSS3 选择器。
喜欢 htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php 中的代码
// - No Unicode support
// - No escapes support
// - No string support (by proxy no attrib support)
// - element_name is matched against allowed
// elements (some people might find this
// annoying...)
// - Pseudo-elements one of :first-child, :link,
// :visited, :active, :hover, :focus
// handle ruleset
$selectors = array_map('trim', explode(',', $selector));
$new_selectors = array();
foreach ($selectors as $sel) {
//some code to filter css selectors
}
不包含任何可以允许选择器的代码,例如 '[class*="grid-"]'。因此,所有此类 css 在纯化后都将被删除。有什么方法可以允许所有 CSS3 吗?
3- 有没有办法允许所有 HTML 5 标签?例如,如果我们有类似 html 的
<section class="mainhead">
<div class="subhead"> </div> </section>
然后 purifier 删除,因此一些 css 像
.mainhead .subhead { //some css}
不会工作。
【问题讨论】:
-
您找到解决方案了吗?如果是这样,你能把它贴在这里吗?
标签: php html css htmlpurifier