2

我试图通过从 Youtube 视频 URL 中提取变量来获取嵌入代码。到目前为止,我有嵌入工作的旧方式,但没有 Iframe 方式。如果 url 在“watch?v=”之后只有 11 个字符,则 Iframe 可以正常工作,但是当 url 包含“&feature=g”这 11 个字符时问题就来了。有没有办法去掉“&feature=g”或者更好的方法?第二个也是次要的,每次我点击自动播放时,我都没有获得视频的自动播放结果?这是我的示例

用于获取嵌入代码的 PHP

<?php
$vari ='';

if($_POST)
{
    $vari       = $_POST['yurl'];
    $hth        = 300; //$_POST['yheight'];
    $wdth       = 500; //$_POST['ywidth'];
    $is_auto    =   0;

    $step1 =explode ('v=', $vari);
    $step2 =explode ('&amp;',$step1[1]);

    if(isset($_POST['yautop'] ))
    {
        if($_POST['yautop'] == 1)
            $is_auto    =   1;
    }
    $auto1  = '?autoplay='.$is_auto;
    $auto2  = '&autoplay='.$is_auto;

//Iframe code

echo  ('<iframe src="http://www.youtube.com/embed/'.$step2[0].'" frameborder="0" width="'.$wdth.'" height="'.$hth.'"></iframe>');

//Old way to embed code
echo  ('<embed width="'.$wdth.'" height="'.$hth.'" type="application/x-shockwave-flash" src="http://www.youtube.com/v/'.$step2[0].'" wmode="transparent" embed="" /></embed>');
}
?>

html

<html>

<form method="post" action="">
URL:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" value="<?php $vari ?>" name="yurl"> <!--$vari-->
<br>
<br>
Autoplay:&nbsp;
<input type="checkbox" value="<?php $auto1; $auto2; ?>" name="yautop">  <!--$auto1 $auto2-->
<br>
<input type="submit" value="Generate Embed Code" name="ysubmit">
<br>
</form>

</html>
4

1 回答 1

0

explode()您可以通过 REGEX 提取 vid ID,而不是多次调用。

$vid_url = "http://www.youtube.com/watch?v=2RgTmJ5oCCA&feature=g-vrec";
preg_match('/(?<=v=)[^&]+/', $vid_url, $vid_id);
//the vid's ID is now in $vid[0]
于 2012-07-11T15:08:31.927 回答