Pengenalan
Artikel ini membincangkan topik mendapatkan dan menghurai Permintaan JSON POST dalam PHP. Ini amat berguna apabila bekerja dengan perkhidmatan web dan API yang memindahkan data dalam format JSON.
Mengenal pasti Isu
Apabila menggunakan aplikasi jenis kandungan/ json untuk permintaan POST, kaedah konvensional seperti $_POST tidak akan mendapatkan semula data. Ini kerana kaedah ini menjangkakan badan permintaan berada dalam bentuk data aplikasi/x-www-form-urlencoded.
Penyelesaian: File_get_contents('php://input')
Untuk menyelesaikan isu ini, PHP menyediakan fungsi file_get_contents('php://input'), yang membolehkan anda membaca data mentah yang diterima dalam permintaan badan. Data mentah ini kemudiannya boleh dihuraikan menggunakan fungsi penyahkodan JSON.
Kod Kemas Kini
Penghantar (CURL)
$ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($data)) )); $result = curl_exec($ch); $result = json_decode($result); var_dump($result);
Penerima (PHP)
$json = file_get_contents('php://input'); $obj = json_decode($json, TRUE);
Nota Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Membaca Badan Permintaan JSON POST dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!