In meiner lokalen Umgebung verwende ich PHP7 und ich habe eine Restful API für eine AngularJS-Anwendung entwickelt. Ich brauche eine get-Anforderung an den Api zu tun und ein Array als Parameter übergeben, also tat ich es:Übergabe eines Arrays als Parameter an PHP Restful Api mit AngularJS
$http.get("/Api/MyUrl.php", {
params: {
"Names[]": ["Foo", "Bar"]
}
})
.then(function(response){ //fires in success
console.log(response.data);
}, function(response){ //fires in error
console.log(response.statusText);
});
In MyUrl.php Datei gedruckt ich die Parameter auf dem Bildschirm wie folgt aus:
<?php
print_r($_GET);
?>
Als es ausgeführt wurde, wurde genau das, was ich mir vorgestellt hatte, auf der Browser-Konsole ausgedruckt:
Array
(
[Names] => Array
(
[0] => Foo
[1] => Bar
)
)
Bis hier gibt es kein Problem. Aber, wenn ich die Anwendung auf dem Server, die nur die PHP-Version 5.6 unterstützt (ich weiß nicht, ob es korreliert ist, aber ich denke schon), der Parameter mit dem Array wird von der PHP auf eine andere Weise, und was gedruckt wird, auf der Konsole ist, dass:
Array
(
[Names%5B%5D] => Bar
)
It "undestands" die [] Signale als HTML-Codes (% 5B und 5D%), nur das letzte Element des Arrays erhalten und interpretiert als commom Variable.
Was muss ich tun, um die Parameter im Server auf dieselbe Weise zu lesen wie in der lokalen Umgebung?