Vik*_*ram 8 php api json themoviedb-api
我刚开始使用theoviedb JSON api,我现在正在尝试做一些看似简单的事情:显示电影的主要海报.我有一个API密钥,这是我正在使用的代码/响应.
$ca = curl_init();
curl_setopt($ca, CURLOPT_URL, "http://api.themoviedb.org/3/configuration?api_key=MYAPIKEY");
curl_setopt($ca, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ca, CURLOPT_HEADER, FALSE);
curl_setopt($ca, CURLOPT_HTTPHEADER, array("Accept: application/json"));
$response = curl_exec($ca);
curl_close($ca);
//var_dump($response);
$config = json_decode($response, true);
//print_r($config);
//$base = $config['base_url'];
//echo($base);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.themoviedb.org/3/search/movie?query=Monsters+University&api_key=MYAPIKEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json"));
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
//print_r($result);
//var_dump($response);
echo("<img src='" . $config[0]['base_url'] . $config[0]['poster_sizes'][2] . $result[0]['poster_path'] . "'/>");
Run Code Online (Sandbox Code Playgroud)
我现在唯一的问题是我试图回显标签来显示海报,但我不确定正确的代码会是什么样的呢?
$responsePHP = json_decode($response);
echo("<img src='" . $responsePHP['poster_path'] . "'/>");
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
编辑:添加了配置数组,但回显没有任何内容.两个JSON打印出来都很好,print_r似乎可以使用json_decode,我只是不知道为什么我不能从数组中提取任何值
看来你需要做一个额外的请求,/3/configuration以获得一些额外的信息.
您正在寻找的参数是base_url您可以用来构建网址的参数.
在这里阅读更多内容:http://docs.themoviedb.apiary.io/#get-%2F3%2Fconfiguration
您可能想知道为什么需要这样做.根据他们的网站,他们这样做,所以他们可以保持他们的API轻,似乎base_url很少变化(更多信息见https://www.themoviedb.org/talk/515a72d0760ee3615a0b5256)
所以,你可以每X次只做一次这个请求(例如每天一次),然后base_url在我可能需要做的所有后续请求中使用我到达那里.
编辑:叹了口气,我以为你有问题只是没有,而base_url不是从json获取数据.
echo("<img src='" . $config['images']['base_url'] . $config['images']['poster_sizes'][2] . $result['results'][0]['poster_path'] . "'/>");
Run Code Online (Sandbox Code Playgroud)
就是这样.