1

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

$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

当我将该 URL 输入浏览器时,我得到一个全屏数据,告诉我,除其他外,有 814 个项目。

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

Error parsing json

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

提前致谢。

4

1 回答 1

0

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

返回的内容可能会溢出 PHP 分配的内存限制。PHP 将 JSON 解析为关联数组或编号数组,这可能会很昂贵。因此,如果您返回的内容太大,它将无法完成解析并仅返回 null。

于 2012-10-05T19:32:16.703 回答