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

时间:2012-06-16 05:34:00

标签: php json

我是Json的新手,我已经应用了google image API的方式,我想知道它是否与将其用于Google 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);

没有结果,也没有出现错误

2 个答案:

答案 0 :(得分:0)

From the PHP manual

  

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

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

答案 1 :(得分:0)

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

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

前:

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

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

[抱歉,我不擅长PHP,但我使用过Google API和CURL]