我是php的新学员。我正在尝试从youtube视频网址中检索嵌入的信息。我最初遵循此SITE的代码,但遗憾的是作者无法访问实际代码。
我在提取php变量值时遇到困难,因此我可以获取嵌入的视频代码。
htmlentities echo返回此错误syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
来源:SITE
<html>
<form method="post" action="">
URL:
<input type="text" value="<?php $vari ?>" name="yurl"> <!--$vari-->
<br>
<br>
Height:
<input type="text" value="<?php $hth ?>" name="yheight"> <!--$hth-->
<br>
<br>
Width:
<input type="text" value="<?php $wdth ?>" name="ywidth"> <!--$wdth-->
<br>
<br>
Autoplay:
<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 ('&',$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>');
?>
答案 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 ('&',$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>');
}
?>
问题是
更新
请用下面的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;
}