Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich JSON-POST-Daten in PHP richtig lesen?

Wie kann ich JSON-POST-Daten in PHP richtig lesen?

Barbara Streisand
Freigeben: 2024-12-16 19:39:15
Original
936 Leute haben es durchsucht

How Can I Properly Read JSON POST Data in PHP?

JSON-POST mit PHP lesen

Bei der Arbeit mit Webdiensten, die die Veröffentlichung von JSON-formatierten Daten erfordern, ist es wichtig, die POST-Werte in PHP korrekt zu verarbeiten. Dieser Artikel führt Sie durch die Schritte zum effektiven Lesen und Analysieren von JSON-POST-Daten.

Problem: Leere $_POST-Werte mit Anwendungs-/JSON-Inhaltstyp

Wenn Sie Probleme mit leeren $ haben _POST-Werte trotz Angabe von application/json als Inhaltstyp angezeigt werden, liegt dies wahrscheinlich an der Art und Weise, wie Sie die Post-Werte filtern. In diesem Fall ist die herkömmliche Variable $_POST nicht zum Lesen von JSON-formatierten Daten geeignet.

Lösung: JSON mit file_get_contents('php://input') lesen

Um auf das Raw zuzugreifen Für JSON-POST-Daten müssen Sie file_get_contents('php://input') verwenden. Diese Funktion liest den Eingabestream des aktuellen Skripts und gibt den rohen HTTP-Anfragetext zurück.

Aktualisierter PHP-Code auf der Empfängerseite:

$json = file_get_contents('php://input');
$obj = json_decode($json);
Nach dem Login kopieren

Verarbeitung von POST-Daten Korrekt beim Testen

Beim Testen Ihres Webservices ist es wichtig sicherzustellen, dass die POST-Daten im richtigen Format gesendet werden. In Ihrem Testcode:

  • Verwenden Sie json_encode($data), um die Daten in einen JSON-String zu konvertieren.
  • Geben Sie den Inhaltstyp als application/json im HTTP-Header an.

Aktualisierter Test Code:

$data_string = json_encode($data);

$ch = curl_init('http://webservice.local/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);
$result = json_decode($result);
Nach dem Login kopieren

Hinweis zur Header-Konfiguration

Stellen Sie sicher, dass header('Content-type: application/json') auf der Empfängerseite nur einmal aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich JSON-POST-Daten in PHP richtig lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage