Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用html5和css3配置htmlpurifier_Php_Html_Css_Htmlpurifier - Fatal编程技术网

Php 使用html5和css3配置htmlpurifier

Php 使用html5和css3配置htmlpurifier,php,html,css,htmlpurifier,Php,Html,Css,Htmlpurifier,我正在使用htmlpurifier。我有一些疑问,如下所示 1-我的配置文件包含 $config->set('HTML.Trusted' ,true); $config->set('CSS.Trusted', true); 但一个简单的谷歌让我登陆到一些页面,在这些页面上有不使用*.Trusted作为“true”的建议 我不明白为什么我们不应该将*.Trusted设置为true?你能给我解释一下吗。因为如果我删除它,我就不会得到内联css?即使CSS.AllowTricky也帮不上

我正在使用htmlpurifier。我有一些疑问,如下所示

1-我的配置文件包含

$config->set('HTML.Trusted' ,true);
$config->set('CSS.Trusted', true);
但一个简单的谷歌让我登陆到一些页面,在这些页面上有不使用*.Trusted作为“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-是否有某种方法允许所有HTML5标记?例如,如果我们有类似html的

<section class="mainhead">
<div class="subhead"> </div> </section>
行不通

  • HTML.Trusted
    设置为
    true
    会启用不安全的元素,例如
    script
    和表单。例如,如果您想允许表单,但不想允许脚本,只需将它们添加到
    HTML中即可。禁止元素

    $config->set('HTML.Trusted',true);
    $config->set('HTML.bankedenelements',['script']);
    
  • 不支持CSS3选择器-存在,但已停用一年多(截至2019年8月)。我认为这不会很快改变

  • 至于HTML5支持——您可以使用一个扩展包(我是该扩展包的作者),它添加了符合规范的HTML5元素定义。它的用法与纯HTML净化器几乎相同-您只需将
    HTMLPurifier\u Config
    替换为
    HTMLPurifier\u HTML5Config


  • 你找到解决办法了吗?如果是的话,你能把它贴在这里吗?
    .mainhead .subhead { //some css}