从图书馆获取标题和作者开放api?

时间:2017-07-30 03:18:30

标签: php json api

以下是我的示例代码,并从https://developers.naver.com/docs/search/book/

打开书籍api指南

如果我只想获得书名和作者,我该如何更改此代码?

有没有人经历过使用图书馆或书店开放API?

下面的代码显示了所有可能的结果。

http://amhappy.net/naverbook.php

  <?php


  $client_id = "";
  $client_secret = "";
  $encText = urlencode("ubuntu");
  $url = "https://openapi.naver.com/v1/search/book.json?query=".$encText; // json 결과

  $is_post = false;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, $is_post);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $headers = array();
  $headers[] = "X-Naver-Client-Id: ".$client_id;
  $headers[] = "X-Naver-Client-Secret: ".$client_secret;
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  $response = curl_exec ($ch);
  $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "status_code:".$status_code."
";
  curl_close ($ch);
  if($status_code == 200) {
    echo $response;
  } else {
    echo "Error 내용:".$response;
  }
?>

1 个答案:

答案 0 :(得分:0)

此方法将使用json_decode(),循环和array_intersect_key()来保留您的响应中只需要的元素。 items子阵列包含所有数据(以及更多)。通过引用$v覆盖&,您可以根据密钥过滤掉不需要的元素。

代码:

$json='{ "lastBuildDate": "Sat, 19 Aug 2017 22:35:30 +0900", "total": 861, "start": 1, "display": 10, "items": [ { "title": "ìœ ë‹‰ìŠ¤ 리눅스 ì…¸ 스í¬ë¦½íŠ¸ ì˜ˆì œ ì‚¬ì „ (ì „ë¬¸ê°€ì—게 ê¼­ 필요한 132가지 실용 ì˜ˆì œ)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=9487573", "image": "http://bookthumb.phinf.naver.net/cover/094/875/09487573.jpg?type=m1&udate=20160615", "author": "오스미 ìœ ìŠ¤ì¼€", "price": "30000", "discount": "27000", "publisher": "한빛미디어", "pubdate": "20150901", "isbn": "8968482136 9788968482137", "description": "ì‹¤ì „ ì˜ˆì œë¥¼ 곧 바로 í˜„ì—…ì— ì 용하ë¼![ìœ ë‹‰ìŠ¤ 리눅스 ì…¸ 스í¬ë¦½íŠ¸ ì˜ˆì œ ì‚¬ì „]ì€ ì„œë²„ 관리, ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ 등 ì‹¤ë¬´ì— ìœ ìš©í•œ ì‹¤ì „ 쉘 스í¬ë¦½íŠ¸ ì˜ˆì œë¥¼ 132ê°œ ì œê³µí•œë‹¤. 서버 ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ìžë¿ë§Œ ì•„ë‹ˆë¼ ìœ ë‹‰ìŠ¤ì™€ 리눅스 개발 í˜„ìž¥ì˜ ì¼ì›ì´ë¼ë©´ ì´ ì±…ì´ ì—…ë¬´ì— ìœ ìš©í•˜ê²Œ í™œìš©ë  ê²ƒì´ë‹¤. ì´ ì±…ì˜ ì˜ˆì œëŠ”... " }, { "title": "ìœ ë‹‰ìŠ¤ 시스템 프로그래ë°", "link": "http://book.naver.com/bookdb/book_detail.php?bid=12321085", "image": "http://bookthumb.phinf.naver.net/cover/123/210/12321085.jpg?type=m1&udate=20170814", "author": "ì´ì¢…ì›", "price": "25000", "discount": "23250", "publisher": "한빛아카ë°ë¯¸", "pubdate": "20170717", "isbn": "1156643325 9791156643326", "description": "ì•„, ì´ í•¨ìˆ˜ëŠ” ì´ëŸ´ ë•Œ 쓰는구나!ì˜ˆì œë¡œ 배우는 시스템 호출 í•¨ìˆ˜ì˜ ê°œë…ê³¼ ì›ë¦¬ ã€Žìœ ë‹‰ìŠ¤ 시스템 프로그래ë°ã€. ì²˜ìŒ ì‹œìŠ¤í…œ 프로그래ë°ì„ 배울 때는 해당... ì´ ì±…ì€ ìœ ë‹‰ìŠ¤ì˜ ë™ìž‘ ì›ë¦¬ë¿ë§Œ ì•„ë‹ˆë¼ ìœ ë‹‰ìŠ¤ 시스템ì—ì„œ ì œê³µí•˜ëŠ” í•¨ìˆ˜ì˜ ì›í˜•ê³¼ ê°ê°ì˜ ì¸ìžë“¤ì„ 소개한다. ë˜í•œ ê°œë…ì„ í™œìš©í•˜ëŠ” ì˜ˆì œë¥¼ ì œì‹œí•˜ì—¬... " }, { "title": "ìœ ë‹‰ìŠ¤ 리눅스 ëª…ë ¹ì–´ ì‚¬ì „", "link": "http://book.naver.com/bookdb/book_detail.php?bid=6413239", "image": "http://bookthumb.phinf.naver.net/cover/064/132/06413239.jpg?type=m1&udate=20170103", "author": "우종경|박종오", "price": "32000", "discount": "28800", "publisher": "한빛미디어", "pubdate": "20101130", "isbn": "8979147937 9788979147933", "description": "ë¹ ë¥´ê²Œ 찾아 쉽게 í™œìš©í•  수 있는 ìœ ë‹‰ìŠ¤ 리눅스 ëª…ë ¹ì–´ ì‚¬ì „ì´ë‹¤. ì¼ë°˜ ëª…ë ¹ì–´, ë°ëª¬ ë° ì„œë²„ì„¤ì •, RPM & DEB, VI ì—디터, SVN & Git, 쉘 스í¬ë¦½íŠ¸ 프로그래ë°ìœ¼ë¡œ 분류하여 ìžì„¸ížˆ 다룬다. ì´ ì±…ì€ ëª…ë ¹ì–´ì˜ ì •í™•í•œ ì´ë¦„ì„ ëª°ë¼ë„ ì–´ë””ì— ì“°ì´ëŠ”지 알면 필요한 ëª…ë ¹ì–´ë¥¼ ì°¾ì„ ìˆ˜ 있게 \'ì´ë¦„별 찾기... " }, { "title": "ìœ ë‹‰ìŠ¤ ì´ë¡ ê³¼ 실습 (ìœ ë‹‰ìŠ¤ ì „ë¬¸ê°€ë¡œ 가는 첫 걸ìŒ)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=7276858", "image": "http://bookthumb.phinf.naver.net/cover/072/768/07276858.jpg?type=m1&udate=20170316", "author": "ìš´ì†Œì •|ì´ì¢…ì›", "price": "23000", "discount": "21850", "publisher": "한빛미디어", "pubdate": "20130730", "isbn": "899875651X 9788998756512", "description": "ã€Žìœ ë‹‰ìŠ¤ ì´ë¡ ê³¼ 실습ã€ì€ ìœ ë‹‰ìŠ¤ë‚˜ ë¦¬ëˆ…ìŠ¤ì— ëŒ€í•œ 기본 지ì‹ì„ ë°°ìš°ê³ ìž í•˜ëŠ” 컴퓨터 ê´€ë ¨í•™ê³¼ì˜ í•™ë¶€ìƒì„ 대ìƒìœ¼ë¡œ 한다. ìœ ë‹‰ìŠ¤ ìž…ë¬¸ì— ê¼­ 필요한 기본 기능과 ëª…ë ¹ì˜ ì‚¬ìš© ë°©ë²•ì„ ì˜ˆì œì™€ 함께 ìžì„¸ížˆ 설명하였기 ë•Œë¬¸ì— ìœ ë‹‰ìŠ¤ ê°•ì˜ êµìž¬ë¡œ ì 합하며, ë…í•™ìš©ìœ¼ë¡œë„ í™œìš©í•  수 있다." }, { "title": "ìœ ë‹‰ìŠ¤ & 리눅스 입문 핵심 ê°€ì´ë“œ (í…Œí¬ë„·ê³¼ 함께하는, 엔터프ë¼ì´ì¦ˆ 솔ë¼ë¦¬ìŠ¤ 11으로 배우는)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=10371745", "image": "http://bookthumb.phinf.naver.net/cover/103/717/10371745.jpg?type=m1&udate=20161223", "author": "ê¹€ì„", "price": "20000", "discount": "18000", "publisher": "INTEK", "pubdate": "20160310", "isbn": "8996376051 9788996376057", "description": "ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ 입문ìžë“¤ì„ 위한 핵심 ë‚´ìš©ì„ ì •ë¦¬í•˜ê³ , 휴대가 간편하게 ê°„ì¶”ë ¸ë‹¤. 솔ë¼ë¦¬ìŠ¤ 11ì„ ê¸°ì¤€ìœ¼ë¡œ ìµœì‹  ë²„ì „ì˜ ìœ ë‹‰ìŠ¤ì™€ 리눅스가 ëª¨ë‘ í¬í•¨ëœ 공통 ë‚´ìš©ì„ ê¸°ìˆ í–ˆë‹¤. ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ 시스템 관리ìžë‚˜ 개발ìž, IT ê´€ë ¨ 부서 ì‹ ìž…ì‚¬ì›ì´ë‚˜ 컴퓨터 ê´€ë ¨ 학과 학부ìƒì—게 ì 합하다." }, { "title": "ìœ ë‹‰ìŠ¤ 리눅스 사용ì—ì„œ 프로그래ë°ê¹Œì§€ (초보ìžë¥¼ 위한 ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ 시스템 프로그래ë°)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=6958195", "image": "http://bookthumb.phinf.naver.net/cover/069/581/06958195.jpg?type=m1&udate=20150715", "author": "창병모", "price": "24000", "discount": "22800", "publisher": "ìƒëŠ¥ì¶œíŒì‚¬", "pubdate": "20120705", "isbn": "8970507345 9788970507347", "description": "초보ìžë¥¼ 위한 ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ 시스템 프로그래ë°ã€Žìœ 닉스·리눅스 사용ì—ì„œ 프로그래ë°ê¹Œì§€ã€. ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ ì‹œìŠ¤í…œì— ëŒ€í•œ 사용법과 시스템 프로그래ë°ì„ 체계ì 으로 배울 수 있ë„ë¡ êµ¬ì„±ëœ ì±…ì´ë‹¤. ë³¸ë¬¸ì˜ ì „ë°˜ë¶€ì—서는 ìœ ë‹‰ìŠ¤Â·ë¦¬ëˆ…ìŠ¤ ì‹œìŠ¤í…œì˜ ì‚¬ìš© ë° í™œìš©ì„ ì¤‘ì‹¬ìœ¼ë¡œ ê³µë¶€í•  수 있ë„ë¡... " }, { "title": "ìœ ë‹‰ìŠ¤ 시스템 프로그래ë°", "link": "http://book.naver.com/bookdb/book_detail.php?bid=6217299", "image": "http://bookthumb.phinf.naver.net/cover/062/172/06217299.jpg?type=m1&udate=20150723", "author": "ì´ì¢…ì›", "price": "25000", "discount": "25000", "publisher": "한빛미디어", "pubdate": "20100107", "isbn": "8979147155 9788979147155", "description": "150ê°œ ì˜ˆì œë¡œ ìœ ë‹‰ìŠ¤ 시스템 호출 함수를 ì •ë³µí•œë‹¤ã€Žìœ ë‹‰ìŠ¤ 시스템 프로그래ë°ã€ì€ ìœ ë‹‰ìŠ¤ì˜ ë™ìž‘ ì›ë¦¬ë¿ë§Œ ì•„ë‹ˆë¼ ìœ ë‹‰ìŠ¤ 시스템ì—ì„œ ì œê³µí•˜ëŠ” í•¨ìˆ˜ì˜ ì›í˜•ê³¼ ê°ê°ì˜ ì¸ì§€ë“¤ì„ 소개한다. ë˜í•œ ê°œë…ì„ í™œìš©í•˜ëŠ” ì˜ˆì œë¥¼ ì œì‹œí•˜ì—¬ ì²˜ìŒ ì ‘í•œ 함수ì¼ì§€ë¼ë„ ì–¸ì œ 어떻게 사용하는지 ìžì—°ìŠ¤ëŸ½ê²Œ ì´í•´í•  수 있다." }, { "title": "ìœ ë‹‰ìŠ¤ 관리ìžë¥¼ 위한 엔터프ë¼ì´ì¦ˆ 솔ë¼ë¦¬ìŠ¤ 핵심 ìš´ì˜ ê°€ì´ë“œ (í…Œí¬ë„·ê³¼ 함께하는)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=6248536", "image": "http://bookthumb.phinf.naver.net/cover/062/485/06248536.jpg?type=m1&udate=20161225", "author": "ê¹€ì„|ìž¥ì„±ê· ", "price": "32000", "discount": "28800", "publisher": "비팬ë¶ìŠ¤", "pubdate": "20100312", "isbn": "8996204560 9788996204565", "description": "ìœ ë‹‰ìŠ¤ì—는 리눅스와 ê°™ì€ ë²”ìš©ì„±ì˜ íŠ¹ì§•ì´ ìžˆë‹¤. ë” ë‚˜ì•„ê°€ì„œ ì•ˆì •ì„±ê³¼ 다양성과 확장성과 보안성까지 ê°–ì¶”ê³  있다. ë˜í•œ, 기업과 ì •ë¶€ ì¡°ì§ì—ì„œ ìœ ë‹‰ìŠ¤ê°€ ìš´ìš©ë˜ê³  있지 ì•Šì€ ê³³ì€ ê±°ì˜ ì—†ì„ ê²ƒì´ë‹¤. ê·¸ ë§Œí¼ ì‹œìŠ¤í…œ 엔지니어가 ë˜ê¸° 위해서는 ì–´ë–¤ 벤ë”ì˜ ê²ƒì´ë“  ìœ ë‹‰ìŠ¤ì— ëŒ€í•œ ìš´ìš© ìŠ¤í‚¬ì„ í™•ë³´í•˜ê³  있어야... " }, { "title": "ìœ ë‹‰ìŠ¤ 시스템 ë„¤íŠ¸ì›Œí¬ í”„ë¡œê·¸ëž˜ë° (ì‹¤ì „ì—ì„œ ì¨ë¨¹ëŠ”)", "link": "http://book.naver.com/bookdb/book_detail.php?bid=7405657", "image": "http://bookthumb.phinf.naver.net/cover/074/056/07405657.jpg?type=m1&udate=20170216", "author": "ì‹ ìž¬í˜¸|ê¹€ì˜ìµ", "price": "30000", "discount": "27000", "publisher": "ì˜ì§„ë‹·ì»´", "pubdate": "20140102", "isbn": "8931445881 9788931445886", "description": "ìœ ë‹‰ìŠ¤ë¥¼ 좀 ë” íš¨ìœ¨ì 으로 í™œìš©í•  수 있ë„ë¡ ë•ê³ ìž í•œë‹¤. ìœ ë‹‰ìŠ¤ë¥¼ ì²˜ìŒ ì ‘í•˜ëŠ” ë…ìžë“¤ì„ 위해 필히 ìµí˜€ì•¼ 하는 ìœ ë‹‰ìŠ¤ì˜ ê°œë…ê³¼ C와 C++ ê´€ë ¨ ë¶€ë¶„ì„ ì¶”ê°€í•´ ìœ ë‹‰ìŠ¤ë¥¼ 쉽게 배울 수 있ë„ë¡ í•˜ì˜€ìœ¼ë©° 나중ì—는 ì‹¤ì œ 프로ì 트와 ìœ ì‚¬í•˜ê²Œ ì˜ˆì œ ì‹œìŠ¤í…œì„ êµ¬í˜„í•´ë³´ëŠ” ìžë¦¬ë„ ë§ˆë ¨í•˜ì˜€ë‹¤. 특히 ìœ ë‹‰ìŠ¤ 시스템과... " }, { "title": "ìœ ë‹‰ìŠ¤ C쉘 프로그래ë°", "link": "http://book.naver.com/bookdb/book_detail.php?bid=7446011", "image": "http://bookthumb.phinf.naver.net/cover/074/460/07446011.jpg?type=m1&udate=20150211", "author": "황민태", "price": "18000", "discount": "16920", "publisher": "한산", "pubdate": "20140220", "isbn": "8989215943 9788989215943", "description": "ã€Žìœ ë‹‰ìŠ¤ C쉘 프로그래ë°ã€ì€ 16주 ê°•ì˜ë¡œ 구성ë˜ëŠ” ëŒ€í•™êµ ê°•ì˜ êµìž¬ì— ì´ˆì ì„ ë§žì¶”ì—ˆìœ¼ë©°, ì¼ë°˜ì¸ì´ë¼ í• ì§€ë¼ë„ ì˜ˆì œë¥¼ 중심으로 조금씩 배우다 ë³´ë©´ ì§§ì€ ì‹œê°„ë‚´ì— ë§ˆìŠ¤í„°í•  수 있ë„ë¡ êµ¬ì„±í•˜ì˜€ë‹¤. ì´ 9장으로 구성하여, ìœ ë‹‰ìŠ¤ 실습 환경 구축부터 기타 ìœ ë‹‰ìŠ¤ ëª…ë ¹ì–´ê¹Œì§€ 살펴본다." } ] }';
$array=json_decode($json,true)['items'];
foreach($array as &$v){
    $v=array_intersect_key($v,['title'=>'','author'=>'']);
}
var_export($array);

输出:

array (
  0 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 리눅스 ì…¸ 스í¬ë¦½íŠ¸ ì˜ˆì œ ì‚¬ì „ (ì „ë¬¸ê°€ì—게 ê¼­ 필요한 132가지 실용 ì˜ˆì œ)',
    'author' => '오스미 ìœ ìŠ¤ì¼€',
  ),
  1 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 시스템 프로그래ë°',
    'author' => 'ì´ì¢…ì›',
  ),
  2 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 리눅스 ëª…ë ¹ì–´ ì‚¬ì „',
    'author' => '우종경|박종오',
  ),
  3 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ ì´ë¡ ê³¼ 실습 (ìœ ë‹‰ìŠ¤ ì „ë¬¸ê°€ë¡œ 가는 첫 걸ìŒ)',
    'author' => 'ìš´ì†Œì •|ì´ì¢…ì›',
  ),
  4 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ & 리눅스 입문 핵심 ê°€ì´ë“œ (í…Œí¬ë„·ê³¼ 함께하는, 엔터프ë¼ì´ì¦ˆ 솔ë¼ë¦¬ìŠ¤ 11으로 배우는)',
    'author' => 'ê¹€ì„',
  ),
  5 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 리눅스 사용ì—ì„œ 프로그래ë°ê¹Œì§€ (초보ìžë¥¼ 위한 ìœ ë‹‰ìŠ¤ ë° ë¦¬ëˆ…ìŠ¤ 시스템 프로그래ë°)',
    'author' => '창병모',
  ),
  6 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 시스템 프로그래ë°',
    'author' => 'ì´ì¢…ì›',
  ),
  7 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 관리ìžë¥¼ 위한 엔터프ë¼ì´ì¦ˆ 솔ë¼ë¦¬ìŠ¤ 핵심 ìš´ì˜ ê°€ì´ë“œ (í…Œí¬ë„·ê³¼ 함께하는)',
    'author' => 'ê¹€ì„|ìž¥ì„±ê· ',
  ),
  8 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ 시스템 ë„¤íŠ¸ì›Œí¬ í”„ë¡œê·¸ëž˜ë° (ì‹¤ì „ì—ì„œ ì¨ë¨¹ëŠ”)',
    'author' => 'ì‹ ìž¬í˜¸|ê¹€ì˜ìµ',
  ),
  9 => 
  array (
    'title' => 'ìœ ë‹‰ìŠ¤ C쉘 프로그래ë°',
    'author' => '황민태',
  ),
)