Heim >Backend-Entwicklung >PHP-Tutorial >Wie liest und analysiert man JSON-POST-Daten in PHP richtig?
JSON-POST-Daten in PHP lesen
Beim Empfang von POST-Daten im JSON-Format ist es wichtig, sie korrekt in PHP abzurufen und zu analysieren. In Ihrem Szenario sind Probleme aufgrund einer falschen Verarbeitung der JSON-POST-Daten aufgetreten.
Um dieses Problem zu beheben, ersetzen Sie die Verwendung von $_POST durch andere Methoden, um die Roheingabe zu lesen und sie dann als JSON zu dekodieren. So können Sie dies erreichen:
Geändertes PHP auf der Empfangsseite:
$inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, TRUE);
Dieser Code liest die Roheingabe als JSON und analysiert sie dann in ein Array auf den Sie mit $input zugreifen können.
Aktualisierter CURL-Code für Testen:
Wie in der Antwort erwähnt, sollte CURLOPT_POSTFIELDS mit JSON-codierten Zeichenfolgen für die JSON-Kommunikation verwendet werden. Hier ist der geänderte Code:
$data_string = json_encode($data); $curl = curl_init('http://webservice.local/'); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string) )); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($curl); $result = json_decode($result); var_dump($result);
Dieser Code stellt den HTTP-Header korrekt so ein, dass er JSON-Inhalte angibt, und codiert die Daten, bevor sie als JSON gesendet werden.
Zusätzlicher Hinweis:
Es ist wichtig sicherzustellen, dass der Header('Content-type: application/json'); Die Zeile erscheint nur einmal auf Ihrer Webservice-Seite. Wenn es mehrmals aufgerufen wird, kann es zu Problemen beim Senden der richtigen Header-Informationen kommen.
Das obige ist der detaillierte Inhalt vonWie liest und analysiert man JSON-POST-Daten in PHP richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!