1

我是php的新手。我正在尝试从 youtube 视频 URL 中检索嵌入信息。我最初是在关注这个SITE的代码,但不幸的是,作者没有提供对实际代码的访问权限。

我很难提取 php 变量值,以便获取嵌入的视频代码。

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

来源:网站

<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 url 信息的 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>');
?>
4

3 回答 3

2

(.)您在两个回声块之后$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. 这不会产生错误,但它不会正常工作。

于 2012-07-11T06:02:36.027 回答
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. 帖子块丢失。

更新

请将 iframe 行替换为以下一行(注意:URL 中缺少一个“w”,它是“ww”)

echo htmlentities ('<iframe src="http://www.youtube.com/embed/'.$step2[0].$auto1.'" frameborder="0" width="'.$wdth.'" height="'.$hth.'"></iframe>');
于 2012-07-11T06:12:55.017 回答
0

您可以使用以下函数从 facebook 和 youtube 获取嵌入 url 代码 $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;
}
于 2018-04-22T16:16:28.010 回答