0

google apiのレスポンスはこんな感じ

{
 "kind": "books#volumes",
 "totalItems": 1956,
 "items": [
  {
   "kind": "books#volume",
   "id": "P_zMW3EHnTEC",
   "etag": "BWKRqUEh9VU",
   "selfLink": "https://content.googleapis.com/books/v1/volumes/P_zMW3EHnTEC",
   "volumeInfo": {
    "title": "The 48 Laws Of Power",
    "authors": 

現在、メイン配列は $bookBatch であり、その中の項目は配列です。items 配列には volumeInfo 配列が含まれます。そして、その volumeInfo に title があります。称号を取得したい。だから私は次のforeachループを書いた

foreach($bookBatch['items'] as $row)
    {
    foreach($row['volumeInfo'] as $volumeinfo)
       {

echo $volumeinfo['title'];

       }    
    }

しかし、私はこのような出力を得ています

TP2TB0ehhhTS2YBpehhhTP2TB0ehhhTAN2TB0ehhhPIT1IB0ehhhP2SB0ehhhPP1TBpehhhPW1SBpehhhSTP2HB0ehhhPAP2IB0ehhh

代わりに、The 48 Laws of Powerのようなタイトルを取得する必要があります

編集1

 $query="power";
    $url = "https://www.googleapis.com/books/v1/volumes?q=".$query;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $bookBatch = curl_exec($ch);
    curl_close($ch);
    $bookBatch = json_decode($bookBatch, true);
4

1 に答える 1

1

データが次のようになっていると仮定します

$json = '{
 "kind": "books#volumes",
 "items": [
  {
   "kind": "books#volume",
   "id": "_ojXNuzgHRcC",
   "etag": "OTD2tB19qn4",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/_ojXNuzgHRcC",
   "volumeInfo": {
    "title": "Flowers",
    "authors": [
     "Vijaya Khisty Bodach"
    ]
  }}]}';

$data = json_decode($json, true);

foreach($data['items'] as $item)
{
    echo $item['volumeInfo']['title'];

    // This will show the Authors names
    echo implode(', ', $item['volumeInfo']['authors']);
}
于 2013-10-15T17:08:48.923 に答える