PHP Angularjs JSON多个API响应

时间:2017-10-02 13:57:19

标签: php angularjs arrays json

我正在使用电影api(https://www.themoviedb.org/documentation/api),api每页仅给出20个结果,我想得到60,所以我对3个页面发出3个请求。 我不知道我是否必须使用json编码或解码响应,但这适用于第一个结果列表:

$url1 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de";
    $url2 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=2&language=de";
        $url3 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=3&language=de";

$response1 = file_get_contents($url1);
$response2 = file_get_contents($url2);
$response3 = file_get_contents($url3);

echo $response1;

我不知道如何将第二个和第三个请求的结果放入'结果':

enter image description here

角度部分

a.filme = []; //declare an empty array

            $http({
              method: 'GET',
              url: 'data/call-api.php'
            }).then(function (response){
                a.filme = response.data.results;
                console.log(response.data);
            },function (error){
                console.log("JSON konnte nicht geladen werden: " + error.status + error.statusText);
            });

api(http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de)浏览器中的响应如下所示: enter image description here

提前致谢:)

2 个答案:

答案 0 :(得分:1)

假设您只需要结果。

$url1 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de";
$url2 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=2&language=de";
$url3 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=3&language=de";

//extract results from each response and merge to single array
$response1 = json_decode(file_get_contents($url1),true)["results"];
$response2 = json_decode(file_get_contents($url2),true)["results"];
$response3 = json_decode(file_get_contents($url3),true)["results"];

echo json_encode(array_merge($response1,$response2,$response3));

答案 1 :(得分:0)

如果您只是在结果列表之后,您可以使用:

$apiKey = "###";

$out = [];
for ($i = 1; $i <= 3; $i++) {
    $url = "http://api.themoviedb.org/3/movie/upcoming?api_key=".$apiKey."&page=".$i."&language=de";
    $response = file_get_contents($url);

    if (is_array($response->results)) {
        $out = array_merge($out, $response->results);
    }
}

echo json_encode($out);

在角度中使用console.log(response);