我正在使用HTMLPurifier过滤来自TinyMCE的HTML。我正在尝试对其进行配置,以使用户能够为链接添加file://F:\*
作为href
。
注意:F
可以是任何其他字母,这只是为了说明URL中必须存在两个:
,我认为这也需要配置。 < / p>
如果URI协议不是href
,则HTMLPurifier会删除http|https
属性。
要么只允许http|https|file
,要么允许所有协议。
我已经添加了此配置,但是使用此选项时,必须定义允许属性的整个列表,这不是最佳选择,所以我宁愿寻找另一个不需要定义整个属性列表的选项
$config->set("HTML.AllowedAttributes", "a.href");
还有一个指向Google网站上显示的HTMLPurifier论坛的链接,但该论坛似乎已关闭...
谢谢。
答案 0 :(得分:0)
在库/AttrDef/URI
只需添加一个具有您想要的名称的新文件 例如 file.php 并扩展抽象 HTMLPurifier_AttrDef_URI
例如
class HTMLPurifier_AttrDef_URI_file extends HTMLPurifier_AttrDef_URI
在那里你可以用你自己的逻辑验证传入的 $uri,如果成功则只返回 true,如果它不让它用父函数验证
然后您可以添加新的 AttrDefinition
$def = config->getHTMLDefinition(true);
$def->addAttribute('a', 'href', new HTMLPurifier_AttrDef_URI_file());