file_get_contents()在有效链接上出现“无法打开流:网络不可达”错误

3

有一个非常简单的使用Youtube API的PHP示例,在我的情况下不起作用,我找不到确定性的解决方案。

我希望自己使用Youtube API而无需任何包装器来获取视频数据。当我尝试从浏览器中访问以下search:list查询时,它可以完美地工作(作为链接),但在PHP中,当我尝试相同的操作时,会出现错误。

        $apikey_YT = <my API key>;
        $ytrequrl = "https://www.googleapis.com/youtube/v3/search?".
                "part=snippet".
                "&maxResults=50".
                "&q=doom".
                "&relatedToVideoId=h8j2zj-A5tE".
                "&type=video".
                "&key=${apikey_YT}";

        $result = file_get_contents($ytrequrl);
        var_dump($result);

潜在的问题可能是URL编码,或允许allow-url-fopen,但在我的情况下似乎都没有帮助:前者实际上给出了一个新的错误消息:No such file or directory

我该怎么办?


@Xorifelse做了,但是没有变化发生。 - Zoltán Schmidt
你尝试过使用简单的[curl]请求吗? - Xorifelse
@Xorifelse 噢,那我很抱歉,我不太记得我从哪里得到这个想法了。无论如何,我还没有尝试过curl,我希望在不使用它的情况下解决这个问题,以防我的主机不支持curl。 - Zoltán Schmidt
@Xorifelse尝试使用curl,现在我收到了“连接被拒绝”的错误。 - Zoltán Schmidt
让我们在聊天中继续这个讨论 - Xorifelse
显示剩余3条评论
1个回答

2

试着这样做。可能是你的格式问题。 这对我有效。

$ytrequrl = 'https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&q=doom&relatedToVideoId=h8j2zj-A5tE&type=video&key='.$apikey_YT;

$info= file_get_contents($ytrequrl);
$info= json_decode($info, true);

print("<pre>".print_r($info,true)."</pre>");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接