从url获取文件内容,然后提取关键字

时间:2012-12-09 19:05:33

标签: php json

我有这个json页面:  https://www.googleapis.com/books/v1/volumes?q=9789264187061 看起来像这样:

  

{“kind”:“books#volumes”,“totalItems”:1,“items”:[{
  “kind”:“books#volume”,“id”:“Z9i0nRGVYrcC”,“etag”:   “6BZ / vrmjoqQ”,“selfLink”:   “https://www.googleapis.com/books/v1/volumes/Z9i0nRGVYrcC”,
  “volumeInfo”:{       “标题”:“创新集群”,       “副标题”:“国家创新体系的驱动力”,       “作者”:[        “Pim Den Hertog”,        “Svend Reme”,        “经合组织 - 经济合作与发展组织”       ]       “出版商”:“经济组织”,       “publishedDate”:“2001”,       “描述”:“各国的增长潜力越来越取决于其创新体系在创造中的有效性,   传播和利用知识。很大一部分以市场为基础或   非正式知识流动可以在产业集群中发生   被视为简化形式的创新体系。刺激政策   国家和地方层面的创新必须建立在和   有助于创新集群的动态。这本书介绍   由政策制定者和学术专家撰写的一系列论文   这个领域,展示了为什么以及如何在不同的方面做到这一点   国家背景。“,       “industryIdentifiers”:[        {         “type”:“ISBN_10”,         “identifier”:“9264187065”        },        {         “type”:“ISBN_13”,         “identifier”:“9789264187061”        }       ]       “pageCount”:419,       “printType”:“BOOK”,       “类别”:[        “商业与经济”       ]       “averageRating”:1.0,       “ratingsCount”:1,       “contentVersion”:“1.0.1.0.preview.2”,       “imageLinks”:{        “smallThumbnail”:“http://bks6.books.google.it/books?id=Z9i0nRGVYrcC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api”,        “thumbnail”:“http://bks6.books.google.it/books?id=Z9i0nRGVYrcC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api”       },       “语言”:“en”,       “previewLink”:“http://books.google.it/books?id=Z9i0nRGVYrcC&printsec=frontcover&dq=9789264187061&hl=&cd=1&source=gbs_api”,       “infoLink”:“http://books.google.it/books?id=Z9i0nRGVYrcC&dq=9789264187061&hl=&source=gbs_api”,       “canonicalVolumeLink”:“http://books.google.it/books/about/Innovative_Clusters.html?hl=&id=Z9i0nRGVYrcC”   },“saleInfo”:{       “国家”:“IT”,       “saleability”:“NOT_FOR_SALE”,       “isEbook”:false},“accessInfo”:{       “国家”:“IT”,       “可见度”:“ALL_PAGES”,       “嵌入式”:是的,       “publicDomain”:false,       “textToSpeechPermission”:“ALLOWED_FOR_ACCESSIBILITY”,       “epub”:{        “isAvailable”:是的,        “acsTokenLink”:“http://books.google.it/books/download/Innovative_Clusters-sample-epub.acsm?id=Z9i0nRGVYrcC&format=epub&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api”       },       “pdf”:{        “isAvailable”:false       },       “webReaderLink”:“http://books.google.it/books/reader?id=Z9i0nRGVYrcC&hl=&printsec=frontcover&output=reader&source=gbs_api”,       “accessViewStatus”:“SAMPLE”},“searchInfo”:{       “textSnippet”:“本书介绍了该领域决策者和学术专家撰写的一系列论文,证明了为什么   以及如何在不同的国家背景下做到这一点。“}}]   }

我必须阅读并定义  $ book_title和$ book_author

  

“volumeInfo”:{       “标题”:“创新集群”,       “作者”:[        “Pim Den Hertog”,        “Svend Reme”,

根据上面的代码

  

echo $ book_title;

应该返回'Innovative Clusters' 和

  

echo $ book_author;

应该返回'Pim Den Hertog和Svend Reme'

2 个答案:

答案 0 :(得分:0)

查看json_decode()功能。
作为第一个参数放置json代码(或var),第二个if设置为true将返回一个关联数组。

$file = file_get_contents('https://www.googleapis.com/books/v1/volumes?q=9789264187061');
$json = json_decode($file, true);

print_r($json);

这是一个很好的开始。

答案 1 :(得分:0)

link。不要指望人们做你的功课,研究一下代码,你会在不到10分钟内找到答案。基本上,当您解码json时,您将获得对象或数组,具体取决于您想要的内容。所以,如果你这样做

   $data=json_decode($str);//$str is your json string
   foreach($data->items as $item){
      foreach($item as $bookdata){
         if(is_object($bookdata) && isset($bookdata->title)){
                echo $bookdata->title ; 
              }
           } 
        }

我留给你找出如何获得作者;)结合这个和以前的答案你就在那里