0

我试图遵循这个答案:

https://stackoverflow.com/a/3331372/1063287

所以在我的 php 文档中,我有以下变量:

$json = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_id}?v=2&alt=json");
$json_data = json_decode($json);
$video_title = $json_data->{'entry'}->{'title'};
$video_date = $json_data->{'entry'}->{'published'};
$video_duration = $json_data->{'entry'}->{'media:group'}->{'yt$duration'};
$video_views = $json_data->{'entry'}->{'yt$statistics'}->{'viewCount'};
$video_description = $json_data->{'entry'}->{'content'};

但这给了我错误:

警告:file_get_contents() [function.file-get-contents]:在第 12 行 /home/path/to//file.php 的服务器配置中禁用 URL 文件访问

警告:file_get_contents(https://gdata.youtube.com/feeds/api/videos/xx-xxxxxxx?v=2&alt=json)[function.file-get-contents]:无法打开流:可能没有合适的包装器在第 12 行的 /home/path/to/file.php 中找到

我在这里查看了开发人员指南:

https://developers.google.com/youtube/2.0/developers_guide_php

并且可以在这里了解提要和条目结构:

https://developers.google.com/youtube/2.0/developers_guide_protocol_understanding_video_feeds#Understanding_Video_Entries

并找到了一些解决方案(一个涉及 curl),但它们要么没有工作,要么我不知道它们是否是最好的使用方法。

谁能告诉我上面的代码有什么问题吗?

4

2 回答 2

1

这很可能是因为您的服务器上没有安装 OpenSSL。尝试安装它,如果仍然无法正常工作,可能是因为您在 php.ini 中禁用了 HTTP 访问(将 allow_url_fopen 设置为 true)

于 2012-11-04T13:42:38.830 回答
1

我看到的最好的东西是Zend_GData_Youtube在 Zend 框架中。它不需要任何特殊的东西,但它比普通的 cURL 或 JSON 请求要容易得多!

见那里: http: //framework.zend.com/downloads/latest

于 2012-11-04T13:45:15.657 回答