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 に答える