Problem beim Lesen des HTTP-Anforderungstexts aus einem JSON-POST in PHP
In PHP können Sie den Körper einer HTTP-Anforderung mit der Funktion file_get_contents('php:input') lesen. Um den Körper als JSON-Objekt zu parsen, können Sie die Funktion json_decode() verwenden. Hier ist ein Beispiel dafür, wie Sie dies für eine JSON-POST-Anforderung tun können:
<?php
$data = json_decode(file_get_contents('php://input'), true);Die Funktion json_decode() nimmt den rohen Eingabezeichenfolgenstring und wandelt ihn in ein PHP-assoziatives Array um. Der zweite Parameter von json_decode() ist ein boolescher Wert, der angibt, ob ein assoziatives Array zurückgegeben werden soll. In diesem Fall ist es auf true gesetzt.
Stellen Sie sicher, dass Ihre PHP-Version mindestens 5.2 ist und überprüfen Sie auch, ob die JSON-Erweiterung in Ihrer php.ini-Datei aktiviert ist.
Außerdem sollten Sie überprüfen, ob die POST-Anforderung im richtigen Format und mit dem richtigen Content-Type-Header kommt.
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_SERVER['CONTENT_TYPE']) && $_SERVER['CONTENT_TYPE'] === 'application/json') {
$data = json_decode(file_get_contents('php://input'), true);
// do something with $data
} else {
// handle invalid request
}