IMDB Api,仅检索标题和情节。

时间:2012-12-27 18:16:13

标签: php api imdb

我找到了这个提供IMDB API的网站: http://www.omdbapi.com

并且为了获得例如霍比特人,它很容易,因为: http://www.omdbapi.com/?i=tt0903624

然后我得到了所有这些信息:

{"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/MV5BMTkzMTUwMDAyMl5BMl5BanBnXkFtZTcwMDIwMTQ1OA@@._V1_SX300.jpg","imdbRating":"9.2","imdbVotes":"5,666","imdbID":"tt0903624","Response":"True"}

问题是我只想要标题,年份和情节信息,我想知道我怎么只能检索这个。

我想使用PHP。

2 个答案:

答案 0 :(得分: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);

另一种方法(稍微提高效率)是取消设置不需要的密钥,例如:

$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);

答案 1 :(得分:0)

OMDBAPI.com不再免费使用。正如您可以在他们的网站上阅读:

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

这意味着您必须成为捐赠者才能访问API。我使用他们的API超过一年,现在它停止了。如果您需要执行大量查询,那么我认为成为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,所以如果有人可以回答一两个问题。