【问题标题】:HTMLPurifier Removing Allowfullscreen From YouTube VideosHTMLPurifier 从 YouTube 视频中删除 Allowfullscreen
【发布时间】:2020-06-10 01:40:18
【问题描述】:

由于某种原因,HTMLPurifier 似乎正在从 iframe 中删除 allowfullscreen 元素,我不知道为什么,我做了一些研究,但似乎找不到几年前的答案。以下是我启动净化器的方法。

require 'htmlpurify/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();

$config->set('HTML.TargetBlank', 'true');
$config->set('HTML.SafeIframe', true);
$config->set('URI.SafeIframeRegexp', '%^(https?:)?//(www\.youtube(?:-nocookie)?\.com/embed/|player\.vimeo\.com/video/)%');
$config->set('HTML.DefinitionID', 'usertag');
$config->set('HTML.DefinitionRev', 1);
if ($def = $config->maybeGetRawHTMLDefinition()) {
    $def->addElement('user', 'Block', 'Flow', 'Common', array('name' => 'ID'));
}

$purifier = new HTMLPurifier($config);

我正在净化这个 <iframe title="YouTube Player" src="https://www.youtube.com/embed/J---aiyznGQ" width="560" height="315" frameborder="0" allowfullscreen></iframe>,但它只是删除了 allowfullscreen 元素。

我的正则表达式错了吗?有没有我不应该添加的东西,或者我缺少的东西?

【问题讨论】:

    标签: php htmlpurifier


    【解决方案1】:

    “allowfullscreen”不是an attribute HTML Purifier inherently recognises for IFrames,这意味着如果你想支持它,你需要customise你的HTML Purifier模块。应该这样做(此代码未经测试,但应该让您走上正确的道路):

    $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);
    $def->addAttribute('iframe', 'allowfullscreen', 'Bool');
    

    看看这对你有没有帮助?如果您发现自己被卡住了,一些其他注意事项已在 stackoverflow 上的 this answer from 2016 中发布(但请注意,如果您使用 HTML.AllowedElementsHTML.AllowedAttributes 配置,这些都是完整的白名单 - 如果您使用这些指令仅将这些指令列入白名单 @ 987654327@,任何其他 HTML 标签都将被剥离)。

    【讨论】:

    • 我在发布之前已经看到了这个,但我发现的问题是我没有在 getHTMLDefinition(); 中输入 true。我认为我可以将其留空,因为默认情况下大多数事情都是正确的。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 2014-01-10
    • 2021-10-07
    • 2013-06-27
    • 2012-05-07
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    相关资源
    最近更新 更多