Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich in PHP ordnungsgemäß auf JSON-POST-Daten zu?

Wie greife ich in PHP ordnungsgemäß auf JSON-POST-Daten zu?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 04:19:12434Durchsuche

How to Properly Access JSON POST Data in PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn