我试图从 YouTube 嵌入代码中捕获 3 个元素,但有时这些元素的顺序不同,或者有时嵌入代码包含更多参数。
我想找到一种方法来提取视频 ID、宽度和长度,以便为 AMP 创建 YouTube 集成。
嵌入示例:
<iframe width="560" height="315" src="https://www.youtube.com/embed/bpcNPHqs4ng" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
应改写为:
<amp-youtube data-videoid="bpcNPHqs4ng" width="560" height="315"
layout="responsive"></amp-youtube>
如果嵌入始终相同,那么很容易解决,但有时嵌入代码从源开始,有时从宽度开始,...所以无论什么顺序我都需要捕获 ID、宽度和高度。
我可以使用 PHP 中的 preg_replace 来做到这一点吗?
我试过这个:
preg_replace('/<iframe width="([0-9]+)" height="([0-9]+)" src="https:\/\/www.youtube.com\/embed\/([A-Za-z0-9]+)" (.*)><\/iframe>/', '<amp-youtube data-videoid="$3" width="$1" height="$2" layout="responsive"></amp-youtube>', $article);
$article 包含使用 YouTube 嵌入内容的整篇文章。
如果 DOM 解析器可以做同样的事情,对我来说也可以,但我对此不太熟悉。
Thanks