1

我正在使用 Youtube 数据 api v3 使用以下网址 https://www.googleapis.com/youtube/v3/search?part=snippet&q=text&key=apikey&maxResults=25检索搜索查询的数据。

我得到 json 响应,当我使用 json decode 来解析 json 数据时,我得到空结果,谁能告诉我如何检索数据

我正在使用下面的 php 代码来解析

$videourl="https://www.googleapis.com/youtube/v3/search?part=snippet&q=hello&key=apikey&maxResults=25";
            $json = file_get_contents($videourl);
            $data = json_decode($json,true);
print_r($data);

从以下网址获取 json 响应: https ://www.googleapis.com/youtube/v3/search?part=snippet&q=hello&key=apikey&maxResults=25

4

2 回答 2

0
if (extension_loaded('curl')) {
    # create a new cURL resource
    $ch = curl_init();

    # set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, "http://googleapis.com/.....");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    # Setting cURL's option to return the webpage data
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    # grab URL and pass it to the browser
    if($json = curl_exec($ch)) {
        if(!($data = @json_decode($json)) instanceof stdClass) {
            trigger_error('Unable to decode json. '. print_r(error_get_last(), true));
        }
    }

    else trigger_error('CUrl Error:'.curl_error($ch));

    # close cURL resource, and free up system resources
    curl_close($ch);

}

else trigger_error('CUrl unsupported', E_USER_WARNING);
于 2014-02-05T11:55:12.167 回答
-1

您应该测试 file_get_contents 的返回值。请注意,如果出现错误,此函数将返回 FALSE(而不是 NULL)。因此,您应该测试返回值,=== FALSE以免被空值混淆。

在您的情况下,如果您尝试访问您在问题中发布的确切网址,谷歌将返回代码 400(错误请求),这就是您返回 FALSE 的原因。

于 2014-02-05T10:58:17.673 回答