我想配置 htmlpurifier,以便它允许 html 中的标签。 Htmlpurifier 与标签表、tbody 的白名单不起作用。 在官网演示模式下,即使将table标签添加到允许的标签中,也会被删除。但标签工作正常。告诉我,我做错了什么?
您可以尝试在这里配置:https://htmlpurifier.org/demo.php
$whitelistTagList = ['u', 'table'];
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', implode(', ', $whitelistTagList));
return HTMLPurifier::getInstance()->purify($value, $config);
值得注意的是,
<table>
标签本身并不是有效的 HTML。您还需要允许 <tr>
、<td>
、<th>
等等。否则 HTML Purifier 充其量只能将输入变成这样:
<table>
<tr>
<td>
Foo
</td>
</tr>
</table>
...通过净化进入此:
<table>
Foo
</table>
...并且由于
<table>
需要其内部的其他 HMTL 节点才有效,因此整个 <table>
标签及其内容将被删除。
作为旁注,您可能应该
implode(',', $whitelistTagList)
,没有空格。巧合的是,它也适用于空格,但 描述的语法 HTML.Allowed
不使用逗号后的空格:
使用以下方式指定允许的元素和属性:
。例如,如果您只想允许段落和链接,请指定element1[attr1|attr2],element2...
。a[href],p