Zugriff auf POST-Daten in PHP: JSON-Body dekodieren
In PHP erfordert die Bearbeitung von POST-Anfragen den Zugriff auf den Anfragetext, um übermittelte Daten zu extrahieren. Beim Empfang eines JSON-codierten Körpers ist es wichtig, den richtigen Ansatz zu verwenden, um die gewünschten Informationen abzurufen.
JSON-Extraktion
Um auf die JSON-Daten im POST-Körper zuzugreifen , verlassen Sie sich nicht auf $_POST. Verwenden Sie stattdessen file_get_contents('php://input'):
$json_input = file_get_contents('php://input'); $data = json_decode($json_input, true);
Dies liest den rohen POST-Body als String, der dann mit json_decode() in ein PHP-Array dekodiert wird.
Umgang mit Multipart-/Formulardaten
Wenn Ihre POST-Anfrage über eine Multipart-/Formulardaten-Codierung verfügt, ist die Daten werden automatisch in den Superglobal $_POST geparst. Beachten Sie jedoch, dass Sie in diesem Fall nicht mit php://input auf den rohen JSON-Körper zugreifen können.
Beispiel
Zum Beispiel, wenn Sie eine POST-Anfrage mit senden der folgende JSON-Body:
{"a": 1}
Ihr PHP-Code kann ihn dekodieren als folgt:
$json_input = file_get_contents('php://input'); $data = json_decode($json_input, true); var_dump($data['a']); // Outputs: 1
Hinweis zur Suchbarkeit
php://input ist nicht suchbar, was bedeutet, dass es nur einmal gelesen werden kann. Wenn Sie den Stream für mehrere Lesevorgänge beibehalten müssen, sollten Sie erwägen, einen temporären Stream mit stream_copy_to_stream() zu erstellen oder php://temp für eine bessere Speicherverwaltung zu verwenden.
Das obige ist der detaillierte Inhalt vonWie greife ich in PHP ordnungsgemäß auf JSON-POST-Daten zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!