Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Membaca Data JSON POST dengan betul dalam PHP?

Bagaimanakah Saya Boleh Membaca Data JSON POST dengan betul dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-16 19:39:15
asal
936 orang telah melayarinya

How Can I Properly Read JSON POST Data in PHP?

Membaca JSON POST Menggunakan PHP

Apabila bekerja dengan perkhidmatan web yang memerlukan data berformat JSON untuk disiarkan, adalah penting untuk mengendalikan nilai POST dalam PHP dengan betul. Artikel ini akan membimbing anda melalui langkah-langkah untuk membaca dan menghuraikan data JSON POST dengan berkesan.

Isu: Kosongkan Nilai $_POST dengan Aplikasi/Jenis Kandungan JSON

Jika anda mengalami masalah dengan $ kosong Nilai _POST walaupun menyatakan aplikasi/json sebagai Jenis Kandungan, ia mungkin disebabkan oleh cara anda menapis nilai siaran. Dalam kes ini, pembolehubah $_POST konvensional tidak sesuai untuk membaca data berformat JSON.

Penyelesaian: Membaca JSON dengan file_get_contents('php://input')

Untuk mengakses mentah Data JSON POST, anda perlu menggunakan file_get_contents('php://input'). Fungsi ini membaca aliran input skrip semasa dan mengembalikan isi permintaan HTTP mentah.

Kod PHP yang dikemas kini pada bahagian penerima:

$json = file_get_contents('php://input');
$obj = json_decode($json);
Salin selepas log masuk

Mengendalikan Data POST Betul Semasa Pengujian

Apabila menguji perkhidmatan web anda, adalah penting untuk memastikan bahawa data POST dihantar dengan betul format. Dalam kod ujian anda:

  • Gunakan json_encode($data) untuk menukar data menjadi rentetan JSON.
  • Tentukan Jenis Kandungan sebagai aplikasi/json dalam pengepala HTTP.

Ujian dikemas kini kod:

$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);
Salin selepas log masuk

Nota tentang Konfigurasi Pengepala

Pastikan pengepala('Content-type: application/json') dipanggil sekali sahaja pada bahagian penerima.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Data JSON POST dengan betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan