无法通过PHP获取Google Books API数据

时间:2012-10-05 19:03:15

标签: json curl google-books

当前代码采用表单输入并执行此操作:

$apikey = 'myapikey';
$q = urlencode($bookSearchTerm);
$endpoint = 'https://www.googleapis.com/books/v1/volumes?q=' . $q . '&key=' . $apikey;
$session = curl_init($endpoint);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($session);
curl_close($session);
$search_results = json_decode($data);
if ($search_results === NULL) die('Error parsing json');

只是为了踢,我也做了

echo $endpoint;

显示

https://www.googleapis.com/books/v1/volumes?q=lord+of+the+rings&key=myapikey

当我将该网址输入浏览器时,我会看到一个完整的屏幕o'数据,告诉我,除其他外,有814项。

然而,当我在页面上运行代码时,我得到了

Error parsing json

有人能告诉我哪里出错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

通过对评论的回复,可以设置,也许不是。也可能是解析器无法解析返回的内容,因为它不是正确的数据格式。检查$data返回的结果。如果它是正确的,那么通过PHP站点上的json_decode文档,它可能是解析器解析(达到递归限制)太大了,尽管我对此表示怀疑。

返回的内容可能会溢出PHP分配的内存限制。 PHP将JSON解析为关联或编号数组,这可能会变得昂贵。所以,如果你得到的东西太大,它将无法完成解析并返回null。