Membaca Data JSON POST dalam PHP
Apabila menerima data POST dalam format JSON, adalah penting untuk mendapatkan dan menghuraikannya dengan betul dalam PHP. Dalam senario anda, anda menghadapi isu disebabkan pengendalian data JSON POST yang salah.
Untuk menyelesaikan masalah ini, gantikan penggunaan $_POST dengan kaedah lain untuk membaca input mentah dan kemudian menyahkodnya sebagai JSON. Begini cara anda boleh mencapai ini:
PHP yang diubah suai pada Halaman Penerima:
$inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, TRUE);
Kod ini membaca input mentah sebagai JSON dan kemudian menghuraikannya ke dalam tatasusunan yang boleh anda akses dengan $input.
Kod CURL yang dikemas kini untuk Pengujian:
Seperti yang dinyatakan dalam respons, CURLOPT_POSTFIELDS harus digunakan dengan rentetan berkod JSON untuk komunikasi JSON. Berikut ialah kod yang diubah suai:
$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);
Kod ini menetapkan pengepala HTTP dengan betul untuk menunjukkan kandungan JSON dan mengekod data sebelum menghantarnya sebagai JSON.
Nota Tambahan:
Adalah penting untuk memastikan bahawa pengepala('Content-type: application/json'); baris muncul sekali sahaja pada halaman perkhidmatan web anda. Jika ia dipanggil beberapa kali, ia boleh menyebabkan masalah dalam menghantar maklumat pengepala yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Membaca dan Menghuraikan Data JSON POST dengan betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!