Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何允许<;音频>;元素与HTML净化器?_Php_Html_Html5 Audio_Htmlpurifier - Fatal编程技术网

Php 我如何允许<;音频>;元素与HTML净化器?

Php 我如何允许<;音频>;元素与HTML净化器?,php,html,html5-audio,htmlpurifier,Php,Html,Html5 Audio,Htmlpurifier,如何使用HTML净化器允许元素 我试过$config->set('HTML.Allowed','audio'),但现在它将删除所有其他元素,包括,等 然后我尝试了$def->addAttribute('audio','src','CDATA')但它不起作用。HTML.Allowed是所有允许的标记的白名单,所以您可能想做的是将$config->get('HTML.Allowed')与,audio作为值连接起来 这就是说,HTML净化器的安全性方法是HTML风格感知的——就像在,而不仅仅是白名单标

如何使用HTML净化器允许元素

我试过
$config->set('HTML.Allowed','audio'),但现在它将删除所有其他元素,包括


然后我尝试了
$def->addAttribute('audio','src','CDATA')
但它不起作用。

HTML.Allowed
是所有允许的标记的白名单,所以您可能想做的是将
$config->get('HTML.Allowed')
,audio
作为值连接起来

这就是说,HTML净化器的安全性方法是HTML风格感知的——就像在,而不仅仅是白名单标记和属性一样,它还确保标记在它们所在的上下文中有意义,属性值看起来像预期的那样,这意味着它必须真正理解您提供给它的HTML定义。例如,您不希望在
-标记中嵌入
-标记,这毫无意义;而且您不希望HTML中出现
width=“foo”
,这也没有意义

因为据我所知,HTML净化器还不了解HTML5,即
,它将告诉您如何添加HTML净化器不知道的标记和属性

引用链接文档中最生动的代码示例(此代码向HTML净化器教授
标记):

需要一些代码:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
[...]
$form = $def->addElement(
    'form',   // name
    'Block',  // content set
    'Flow', // allowed children
    'Common', // attribute collection
    array( // attributes
        'action*' => 'URI',
        'method' => 'Enum#get|post',
        'name' => 'ID'
    )
);
$form->excludes = array('form' => true);
每个参数对应于我们提出的一个问题。请注意,我们在action属性的末尾添加了一个星号,以指示它是必需的。如果有人指定了一个没有该属性的表单,则标记将被删除。另外,末尾的额外行是一个特殊的额外声明,用于防止表单相互嵌套

一旦您按照这些说明使您的净化程序了解了
,将标签
添加到您的配置白名单将起作用。

“它不起作用”是一个描述得不够详细的问题,我建议添加更多信息。