【问题标题】:Youtube video title not available?Youtube 视频标题不可用?
【发布时间】:2014-04-13 22:18:37
【问题描述】:

这就是我尝试获取 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);

它在本地主机上工作,但在其他服务器上它不保存标题。请帮我。

【问题讨论】:

  • 先做一些基本的错误检查和调试。什么时候失败了?
  • 警告:file_get_contents(): http:// wrapper is disabled in server configuration by allow_url_fopen=0 in /wwwroot/admin/video-uj.php on line 29 Warning: file_get_contents(gdata.youtube.com/feeds/api/… ):无法打开流:在第 29 行 vw61gCe2oqINULL 的 /wwwroot/admin/video-uj.php 中找不到合适的包装器

标签: php mysql youtube


【解决方案1】:

我已经在一个随机视频 URL 上测试了您的代码,它运行良好。唯一可能导致问题的是您正在爆炸= 上的第一个字符串,视频 URL 可以包含多个=,所以我将其更改为:

$video=explode("v=", $url);

【讨论】:

    【解决方案2】:

    警告:file_get_contents(): http:// wrapper 在 通过 allow_url_fopen=0 配置服务器

    这意味着您在 php.ini 中禁用了 allow_url_fopen。您需要通过更改 php.ini 来打开它,或者您可以使用:

    ini_set('allow_url_fopen', 1);

    或者,您可以使用curl 代替file_get_contents(),例如this answer。它也对我有用。

    【讨论】:

    • 如何开启?我想我无法访问 php.ini
    • 如果您没有权限并且ini_set() 也不起作用,请尝试使用curl。检查我的答案编辑。
    • 你能帮我把它放在我的代码中吗?我从来没有使用过它,明天早上我必须向我的老师展示一个工作代码:/
    • 您只需将解决方案中的file_get_contents() 替换为该答案中的内容,将$this->page 替换为"http://gdata.youtube.com/..." 并将$this->pageSource 替换为$video_feed
    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2017-10-14
    • 2012-09-12
    • 2013-03-23
    相关资源
    最近更新 更多