首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AMP格式的正确语法重新生成YouTube嵌入

使用AMP格式的正确语法重新生成YouTube嵌入
EN

Stack Overflow用户
提问于 2018-09-24 20:25:01
回答 1查看 406关注 0票数 0

我的网站输出所有youtube嵌入视频作为AMP视图中的amp-iframe。他们玩得很好,然而,我从谷歌搜索控制台上注意到了他们的正确语法(要求一个)。

现在,我已经添加了以下代码:

代码语言:javascript
复制
$ampyoutubevideo = str_replace("https://www.youtube.com/embed/","",$base_content);
$html = preg_replace('/<amp-iframe\s+.*?\s+src=("youtube.com*?").*?<\/amp-iframe>/', '<amp-youtube
    data-videoid=$1
    layout="responsive"
    width="480" height="270"></amp-youtube>', $ampyoutubevideo);

echo $html;

这工作得很好,但我的视频被显示了两次,因为正在生成,但代码也存在。我确实认为我的正则表达式不正确,我想知道您是否可以帮助我正确地对它进行语法分析。

我的目的是当嵌入的项目只存在于youtube.com源代码时,将其完全替换。

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 23:34:04

在WP的AMP下也有同样的问题。添加代码,返回内容两次,一次使用amp-youtube标记,另一次使用amp-iframe。

我正在添加以下内容:

代码语言:javascript
复制
$ampyoutubevideo = str_replace("https://www.youtube.com/embed/","",$base_content);
$html = preg_replace('/<amp-iframe\s+.*?\s+src=(".*?").*?<\/amp-iframe>/', '<amp-youtube
    data-videoid=$1
    layout="responsive"
    width="480" height="270"></amp-youtube>', $ampyoutubevideo);

echo $html;

并获得:

代码语言:javascript
复制
<div class="embed-responsive embed-responsive-16by9">
<amp-youtube data-videoid="zXrdyx43va" layout="responsive" width="480" height="270"></amp-youtube>
</div>
<div class="embed-responsive embed-responsive-16by9">
<amp-iframe class="embed-responsive-item amp-wp-enforced-sizes" src="https://www.youtube.com/embed/zXrdyx43va" width="300" height="150" frameborder="0" allowfullscreen="" sandbox="allow-scripts allow-same-origin" layout="intrinsic"><div placeholder="" class="amp-wp-iframe-placeholder">
</div>
</amp-iframe>

如果我不应用你的代码片段,我会得到这样的输出:

代码语言:javascript
复制
<div class="embed-responsive embed-responsive-16by9">
<amp-iframe class="embed-responsive-item amp-wp-enforced-sizes" src="https://www.youtube.com/embed/zXrdyx43va" width="300" height="150" frameborder="0" allowfullscreen="" sandbox="allow-scripts allow-same-origin" layout="intrinsic"><div placeholder="" class="amp-wp-iframe-placeholder">
</div>
</amp-iframe>

我非常确定您需要手动preg_replace iframe,但我不是正则表达式专家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52479366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档