我刚开始使用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,"http://api.themoviedb.org/3/search/movie?query=Monsters+University&api_key=MYAPIKEY"); curl_setopt($ch,TRUE); curl_setopt($ch,FALSE); curl_setopt($ch,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'] . "'/>");
我现在唯一的问题是我正在尝试回显一个标签来显示海报,但我不确定正确的代码会是什么样的呢?
$responsePHP = json_decode($response); echo("<img src='" . $responsePHP['poster_path'] . "'/>");
任何帮助,将不胜感激!
编辑:添加了配置数组,但回显没有任何内容.打印出精简版和print_r的JSON似乎与json_decode一起使用,我只是不知道为什么我不能从数组中提取任何值
看来你需要对/ 3 /配置做一个额外的请求才能得到一些额外的信息.
您要查找的参数是base_url,您可以使用它来构建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'] . "'/>");
就是这样.