2012-12-27 5 views
1

나는 그 IMDB API를 제공하고 있으며,이 사이트를 발견 http://www.omdbapi.com/?i=tt0903624IMDB Api, 제목과 그림 만 검색하십시오. <a href="http://www.omdbapi.com" rel="nofollow">http://www.omdbapi.com</a></p> <p>과 호빗의가이 같이 충분히 쉽게 예를 들어 얻기를 위해 :

그럼이 모든 정보를 얻을 :

{"Title":"The Hobbit: An Unexpected Journey","Year":"2012","Rated":"11","Released":"14 Dec 2012","Runtime":"2 h 46 min","Genre":"Adventure, Fantasy","Director":"Peter Jackson","Writer":"Fran Walsh, Philippa Boyens","Actors":"Martin Freeman, Ian McKellen, Richard Armitage, Andy Serkis","Plot":"A curious Hobbit, Bilbo Baggins, journeys to the Lonely Mountain with a vigorous group of Dwarves to reclaim a treasure stolen from them by the dragon Smaug.","Poster":"http://ia.media-imdb.com/images/M/[email protected]@._V1_SX300.jpg","imdbRating":"9.2","imdbVotes":"5,666","imdbID":"tt0903624","Response":"True"} 

것은 제목, 연도 및 줄거리 정보를 예를 들어서 만보기를 원하며이 부분 만 검색 할 수 있는지 궁금합니다.

PHP를 사용하고 싶습니다.

답변

5

여기에 ... 간단히 json을 디코딩하고 필요한 데이터를 꺼냅니다. 필요한 경우 나중에 json으로 다시 인코딩 할 수 있습니다.

$data = file_get_contents('http://www.omdbapi.com/?i=tt0903624'); 
$data = json_decode($data, true); 
$data = array('Title' => $data['Title'], 'Plot' => $data['Plot']); 
$data = json_encode($data); 
print($data); 

(약간 더 효율적으로)이 작업을 수행하는 또 다른 방법은 OMDBAPI.com가 더 이상 무료로 사용할 수 없습니다

$data = file_get_contents('http://www.omdbapi.com/?i=tt0903624'); 
$data = json_decode($data, true); 
$keys = array_keys($data); 
foreach ($keys as $key) { 
    if ($key != 'Title' && $key != 'Plot) { 
     unset($data[$key]); 
    } 
} 
$data = json_encode($data); 
print($data); 
+0

최고 해결책을 시도했을 때이 오류가 발생했습니다. "치명적인 오류 : 형식이 stdClass 인 객체를 배열로 사용할 수 없습니다." – user1133188

+0

json_decode의 기본값은 객체이기 때문에 가능합니다. 편집 할 때마다 (리뷰를 얻을 때마다) 두 번째 매개 변수를 배열로 디코딩하도록 설정하여 수정했습니다. 대안으로, 첫 번째 예에서 객체 표기법을 사용하여 기본 json_decode 데이터에 액세스 할 수 있습니다. 예 : 'Title'=> $ data-> Title, 'Plot'=> $ data-> Plot' – taswyn

0

:, 예컨대을 불필요한 키 설정을 해제하는 것입니다. 웹 사이트에서 읽을 수있는대로 :

05/08/17 - Going Private! Please go read the post on the Patreon page about this major change. 

즉, API에 액세스하려면 기부자가되어야합니다. 나는 그들의 API를 1 년 넘게 사용했고 지금은 멈췄습니다. 많은 쿼리를 수행해야한다면 OMDBAPI의 스폰서가되는 것이 좋습니다. 그러나 나는 작은 개인 프로젝트에서 API를 사용했다. 인터넷 검색을 한 후 다른 API를 찾았습니다. 사용할 수있는 코드는 다음과 같습니다.

<?php 
$imdbID = 'tt2866360'; 
$data = json_decode(file_get_contents('http://api.rest7.com/v1/movie_info.php?imdb=' . $imdbID)); 

if (@$data->success !== 1) 
{ 
    die('Failed'); 
} 
echo '<pre>'; 
print_r($data->movies[0]); 

본 웹 사이트와 아무 관계가 없습니다. 하지만이 API를 사용하므로 누구나 질문에 답변 할 수 있습니다.