这就是我尝试获取YouTube视频标题的方式。
$url=$_POST['video'];
$video=explode("=", $url);
$code = explode("&",$video[1]);
$video_feed = file_get_contents("http://gdata.youtube.com/feeds/api/videos?v=2&q=".$video[1]."&max-results=1&fields=entry(title)&prettyprint=true");
$video_obj = simplexml_load_string($video_feed);
$video_str = $video_obj->entry->title;
echo $video_str;
echo $code[0];
$sql="INSERT INTO youtube (y_vid,y_name)
VALUES('".$code[0]."','".mysql_real_escape_string($video_str)."')";
mysql_query($sql);
它适用于localhost,但在其他服务器上它不保存标题。请帮我。
答案 0 :(得分:0)
我已经在随机视频网址上测试了您的代码,它运行良好。只有可能导致问题的是您正在=
上爆炸第一个字符串,视频网址可以包含多个=
,所以我将其更改为:
$video=explode("v=", $url);
答案 1 :(得分:0)
警告:file_get_contents():http://封装器被禁用 服务器配置by allow_url_fopen = 0
这意味着您已在php.ini中禁用了allow_url_fopen。您需要通过更改php.ini来打开它,或者您可以使用:
ini_set('allow_url_fopen',1);
或者,您可以使用curl
代替file_get_contents()
,例如this answer。它也适合我。