gpt4 book ai didi

htmlpurifier - 获取 HTMLPurifier 4.5 以仅允许一个标签

转载 作者:行者123 更新时间:2023-12-05 05:27:48 26 4
gpt4 key购买 nike

HTMLPurifier 默认允许很多我不想允许的标签。根据文档,您必须添加如下定义:

$config = HTMLPurifier_Config::createDefault();
if ($def = $config->maybeGetRawHTMLDefinition()) {
$def->addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(array('_blank','_self','_target','_top')));
}
$purifier = new HTMLPurifier($config);

问题是我找不到删除所有来自 HTMLPurifier_Config::createDefault(); 的标签的方法.

例如 HTML <div>Sometext</div>将使用上述初始化代码保留 DIV 标签。

如何将 HTMLPurifier 设置为仅允许 <strong> , <a href="*"><p>

最佳答案

您说:“根据文档,您必须添加这样的定义”。

除非自从我上次检查库(大约一年前)以来发生了一些根本性的变化,否则这并不完全正确 - 如果您想教授 HTML Purifier 属性,那部分存在它本身并不知道。例如,如果您想教您的 HTML 净化器接受非标准的 <font>属性,例如 align="" ,您需要更改原始 HTML 定义。

但是,如果您的白名单完全由常规 HTML 元素组成(您的也是如此!),您只需要使用 $config对象:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.AllowedElements', array(
'strong','a','p'
));
$config->set('HTML.AllowedAttributes', array(
'a.href'
));
$purifier = new HTMLPurifier($config);

那应该行得通。你遇到那个星座的问题了吗?

(也请查看此文档:http://htmlpurifier.org/live/INSTALL)

关于htmlpurifier - 获取 HTMLPurifier 4.5 以仅允许一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com