PHP iframe转amp-youtube

时间:2018-09-26 11:38:56

标签: php amp-html

我想将iframe更改为amp-youtube。我做到了,但是有问题。我使用youtube视频配置,但amp-youtube只需要视频简码。因此,我正在第2行中解决此问题。但是第2行却没有工作

$this->html = str_replace("//www.youtube.com/embed/","",$this->html);
$this->html = str_replace("?rel=0&showinfo=0","",$this->html); // This is not working
$this->html = preg_replace('/<iframe\s+.*?\s+src=(".*?").*?<\/iframe>/', '<amp-youtube data-videoid=$1 layout="responsive" width="480" height="270"></amp-youtube>', $this->html);

第2行str_replace无法正常工作。我该怎么做呢?示例preg_replace吗?

正确的代码:

<amp-youtube
    data-videoid="mGENRKrdoGY"
    layout="responsive"
    width="480" height="270"></amp-youtube>

我的代码正在这样打印。因此视频无法打开

<amp-youtube
        data-videoid="mGENRKrdoGY?rel=0&showinfo=0"
        layout="responsive"
        width="480" height="270"></amp-youtube>

还有另一个问题。如果iframe链接不是youtube,我想将iframe更改为amp-iframe。

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式实现:

<?php
$iframeCode = '<iframe width="100%" height="450" src="https://www.youtube.com/embed/mGENRKrdoGY?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
preg_match('/embed\/([\w+\-+]+)[\"\?]/', $iframeCode,$match); 
echo '<amp-youtube
    data-videoid="'.$match[1].'"
    layout="responsive"
    width="480" height="270"></amp-youtube>';
?>

答案 1 :(得分:0)

它可以正常工作,但仅适用于第一个视频。我在$ content中有3个视频,但它只获得第一个视频的ID。

波纹管就是示例

$content_description = 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an <iframe src="https://www.youtube.com/embed/V6LP8m4GpVc" allowfullscreen="" frameborder="0"></iframe>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an <div class="embed-container"><iframe src="https://www.youtube.com/embed/xfLQcsP0L18" allowfullscreen="" frameborder="0"></iframe></div>';
    preg_match('/embed\/([\w+\-+]+)[\"\?]/', $content_description,$match); 
    $yt = '<amp-youtube
    data-videoid="'.$match[1].'"
    layout="responsive"
    width="480" height="270"></amp-youtube>';

    echo $yt;

结果

    <amp-youtube
    data-videoid="V6LP8m4GpVc"
    layout="responsive"
    width="480" height="270"></amp-youtube>

我也想回显所有内容。.我正在将现有的php网站转换为放大器。在同一地点将iframe转换为amp-youtube。以及img到amp-img。