无法打印 Google CSE 的 Json 结果字符串


Unable to print Json result String for Google CSE

我是 Json 的新手,我已经应用了适用于谷歌图像 API 的方式,我想知道它是否与将它用于谷歌 CSE 的方式相同?

$url ="https://www.googleapis.com/customsearch/v1?key=WHATEVER&cx=017728263617760474213:e_b2kmmuyco&q=standard%20form";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://localhost/GSearch2.php");
$body = curl_exec($ch);
curl_close($ch);
$json = json_decode($body);
print_r($json->items);

没有结果或错误出现

来自 PHP 手册:

如果无法解码 json,或者编码的数据深度超过递归限制,则返回 NULL。

由于递归深度在 PHP 5.3.0 中从 128 增加到 512,因此很有可能这不是问题所在,因此$body可能不包含有效的 JSON。确保 $url 的值指向有效的 JSON 并查看json_last_error()

您是否尝试检查 HTTTP 响应正文 [可能是通过打印它]?

有时,像Google这样的Web服务会在json内容本身中指示服务器端错误。

前任:

您期待一个 json 字符串{ "items": "Sample item" }

但是响应 JSON 字符串类似于{ "error" : "invalid key/id1" }

[对不起,我不太擅长PHP,但我使用过Google API和CURL]