我打算添加一个带有"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行调用完成后,无法设置指令”
我想知道上面的代码有什么问题。如有任何建议,我们将不胜感激。
发布于 2020-02-01 17:55:25
我解决了这个问题。在改变上述代码的顺序后,它的工作方式如下:
$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以检索先前设置的规则的副本,最后添加自定义属性。
https://stackoverflow.com/questions/60008039
复制相似问题