1

我找到了这个提供 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。

4

2 回答 2

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);
于 2012-12-27T18:21:50.477 回答
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,所以如果有人有,我可以回答一两个问题。

于 2017-06-17T14:42:52.343 回答