通过php获取youtube嵌入式视频代码

时间:2012-07-11 05:39:08

标签: php

我是php的新学员。我正在尝试从youtube视频网址中检索嵌入的信息。我最初遵循此SITE的代码,但遗憾的是作者无法访问实际代码。

我在提取php变量值时遇到困难,因此我可以获取嵌入的视频代码。

htmlentities echo返回此错误syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

来源:SITE

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

用于获取youtube网址信息的php代码

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

$auto1='?autoplay=1';

$auto2='&autoplay=1';


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

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

3 个答案:

答案 0 :(得分:2)

在两个echo块中(.)$step2[0].$auto2之后,你错过了一个连接运算符$step2[0].$auto1

echo htmlentities (...)

应该是:

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

另外,在自动播放的iframe代码中 你拼错了$auto1。这不会产生错误,但它无法正常工作。

答案 1 :(得分:1)

尝试以下代码......应该工作

<?php
$vari ='';

if($_POST)
{
    $vari       = $_POST['yurl'];
    $hth        = $_POST['yheight'];
    $wdth       = $_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 with autoplay

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

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

问题是

  1. 连接运算符(。)缺失
  2. 变量名称对于“$ atuo1”
  3. 无效
  4. 帖子块丢失了。

  5. 更新

    请用下面的iframe替换iframe行(注意:URL中缺少一个“w”,这是“ww”)

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

答案 2 :(得分:0)

您可以使用以下功能从facebook和youtube获取嵌入式网址代码 $ link是Web浏览器上显示的地址

//get youtube link
    function youtube_embed_link($link){
        $new=str_replace('https://www.youtube.com/watch?v=','', $link);
        $link='https://www.youtube.com/embed/'.$new;
        return $link;
    }
    //get facebook link
    function fb_embed_link($link) {
        $link = 'https://www.facebook.com/plugins/video.php?href='.$link.'&show_text=0&width=560';
        return $link;
    }
//get embed url for fb nd youtube
function get_vid_embed_url($link){
    $embed_url='sss';
//if video link is facebook
    if (strpos($link, 'facebook') !== false) {
        $embed_url=fb_embed_link($link);
    }
//if video link is youtube
    if (strpos($link, 'youtube.com') !== false) {
        $embed_url=youtube_embed_link($link);
    }
    return $embed_url;
}