当前代码采用表单输入并执行此操作:
$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
有人能告诉我哪里出错了吗?
提前致谢。
答案 0 :(得分:0)
通过对评论的回复,可以设置,也许不是。也可能是解析器无法解析返回的内容,因为它不是正确的数据格式。检查$data
返回的结果。如果它是正确的,那么通过PHP站点上的json_decode文档,它可能是解析器解析(达到递归限制)太大了,尽管我对此表示怀疑。
返回的内容可能会溢出PHP分配的内存限制。 PHP将JSON解析为关联或编号数组,这可能会变得昂贵。所以,如果你得到的东西太大,它将无法完成解析并返回null。