【问题标题】:How to allow elements AT THE SAME allow custom attribute in HTMLPurifier?如何允许元素同时允许 HTMLPurifier 中的自定义属性?
【发布时间】:2023-03-11 22:06:01
【问题描述】:

我将添加一个带有“a”元素的自定义属性“custom-type”,同时只允许“h1”和“a”元素。

我尝试以下代码:

    $config= HTMLPurifier_Config::createDefault();
    $config->set('Attr.EnableID',true);
    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('a', 'custom-type', 'Text');
    $config->set('HTML.Allowed', 'h1,a[href|id|custom-type]');
    $html_purifier = new \HTMLPurifier($config);        
    $clean_html = $html_purifier->purify($str);

它会产生如下错误:

“文件第 69 行调用终结后无法设置指令”

我想知道上面的代码有什么问题。任何建议将不胜感激。

【问题讨论】:

    标签: htmlpurifier


    【解决方案1】:

    我解决了这个问题。它在改变上述代码的顺序后工作,如下所示:

    $config= HTMLPurifier_Config::createDefault();
    $config->set('Attr.EnableID',true);
    $config->set('HTML.Allowed', 'h1,a[href|id|custom-type]');
    $def = $config->getHTMLDefinition(true);
    $def->addAttribute('a', 'custom-type', 'Text');
    $html_purifier = new \HTMLPurifier($config);        
    $clean_html = $html_purifier->purify($str);
    

    先设置规则,然后将 getHTMLDefinition(true) 设置为 true 以检索先前设置的规则的副本,最后添加自定义属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 2023-04-08
      • 2011-03-29
      相关资源
      最近更新 更多