Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menerima JSON POST dengan PHP

Cara Menerima JSON POST dengan PHP

WBOY
WBOYasal
2024-08-28 11:31:04966semak imbas

How to Receive JSON POST with PHP

Untuk menerima permintaan JSON POST dalam PHP, anda boleh mengikuti langkah berikut:

  • Pastikan permintaan yang dihantar ke skrip PHP anda diformatkan sebagai objek JSON.

  • Dalam skrip PHP anda, dapatkan semula data POST mentah menggunakan fungsi file_get_contents('php://input'). Fungsi ini membaca aliran input mentah permintaan HTTP.

  • Gunakan fungsi json_decode() untuk menyahkod data JSON yang diterima ke dalam tatasusunan atau objek bersekutu PHP.

  • Anda kemudian boleh mengakses data yang dinyahkod dan melakukan sebarang operasi atau pemprosesan yang diperlukan padanya.

Terdapat pelbagai cara untuk menerima permintaan JSON POST dalam PHP. Berikut adalah tiga kaedah biasa

  • Menggunakan file_get_contents('php://input')

  • Menggunakan $_POST superglobal

  • Menggunakan json_decode() dengan $_REQUEST

Menggunakan file_get_contents('php://input')

Untuk menerima permintaan JSON POST dalam PHP menggunakan kaedah file_get_contents('php://input'), ikut langkah berikut:

Hantar data JSON dalam badan permintaan dengan pengepala Jenis Kandungan ditetapkan ke aplikasi/json.

Dalam skrip PHP anda, gunakan fungsi file_get_contents('php://input') untuk mendapatkan semula data POST mentah.

Gunakan fungsi json_decode() untuk menyahkod data JSON yang diterima ke dalam tatasusunan atau objek bersekutu PHP.

Anda kemudian boleh mengakses data yang dinyahkod dan melakukan sebarang operasi atau pemprosesan yang diperlukan padanya.

Contoh

Berikut ialah contoh coretan kod yang menunjukkan cara menerima dan memproses permintaan JSON POST menggunakan file_get_contents('php://input'):

<?php
// Retrieve the raw POST data
$jsonData = file_get_contents('php://input');
// Decode the JSON data into a PHP associative array
$data = json_decode($jsonData, true);
// Check if decoding was successful
if ($data !== null) {
   // Access the data and perform operations
   $name = $data['name'];
   $age = $data['age'];
   // Perform further processing or respond to the request
} else {
   // JSON decoding failed
   http_response_code(400); // Bad Request
   echo "Invalid JSON data";
}
?>

Dalam contoh ini, data JSON POST diambil menggunakan file_get_contents('php://input') dan disimpan dalam pembolehubah $jsonData. Fungsi json_decode() kemudiannya digunakan untuk menyahkod data JSON ke dalam tatasusunan bersekutu PHP, yang disimpan dalam pembolehubah $data.

Anda boleh mengakses data yang diterima menggunakan kekunci tatasusunan yang sesuai (cth., $data['nama'], $data['umur']), dan melaksanakan sebarang operasi atau pemprosesan yang diperlukan berdasarkan keperluan khusus anda.

Ingat untuk mengendalikan kes ralat, seperti apabila penyahkodan JSON gagal disebabkan oleh JSON yang tidak sah. Dalam contoh di atas, kod respons HTTP yang sesuai (400 Bad Request) dan mesej ralat disediakan untuk mengendalikan senario ini.

Menggunakan $_POST superglobal

Untuk menerima permintaan JSON POST dalam PHP menggunakan $_POST superglobal, ikut langkah berikut:

Hantar data JSON dalam badan permintaan dengan pengepala Jenis Kandungan ditetapkan ke aplikasi/json.

Dalam skrip PHP anda, akses data JSON daripada superglobal $_POST.

Data JSON akan dihuraikan secara automatik dan tersedia sebagai tatasusunan bersekutu dalam $_POST.

Anda kemudian boleh mengakses data yang diterima dan melakukan sebarang operasi atau pemprosesan yang diperlukan padanya.

Contoh

Berikut ialah contoh coretan kod yang menunjukkan cara menerima dan memproses permintaan JSON POST menggunakan $_POST superglobal:

<?php
// Access the JSON data from $_POST
$data = $_POST;
// Check if data is available
if (!empty($data)) {
   // Access the data and perform operations
   $name = $data['name'];
   $age = $data['age'];
   // Perform further processing or respond to the request
} else {
   // No data received
   http_response_code(400); // Bad Request
   echo "No JSON data received";
}
?>

Dalam contoh ini, data JSON POST dihuraikan secara automatik dan tersedia dalam superglobal $_POST. Data yang diterima disimpan dalam pembolehubah $data, yang boleh diakses sebagai tatasusunan bersekutu.

Anda boleh mengakses data yang diterima menggunakan kekunci tatasusunan yang sesuai (cth., $data['nama'], $data['umur']), dan melaksanakan sebarang operasi atau pemprosesan yang diperlukan berdasarkan keperluan khusus anda.

Jika tiada data diterima atau jika permintaan tidak mengandungi JSON yang sah, anda boleh mengendalikan kes ralat dengan sewajarnya. Dalam contoh di atas, kod respons HTTP yang sesuai (400 Permintaan Buruk) dan mesej ralat disediakan untuk mengendalikan senario apabila tiada data JSON diterima.

Menggunakan json_decode() dengan $_REQUEST

Untuk menerima permintaan JSON POST dalam PHP menggunakan fungsi json_decode() dengan $_REQUEST, ikuti langkah berikut:

Hantar data JSON dalam badan permintaan dengan pengepala Jenis Kandungan ditetapkan ke aplikasi/json.

Dalam skrip PHP anda, dapatkan semula data POST mentah menggunakan fungsi file_get_contents('php://input').

Gunakan fungsi json_decode() untuk menyahkod data JSON yang diterima ke dalam tatasusunan atau objek bersekutu PHP.

Tugaskan data yang dinyahkodkan kepada $_REQUEST superglobal.

Contoh

Berikut ialah contoh coretan kod yang menunjukkan cara menerima dan memproses permintaan JSON POST menggunakan json_decode() dengan $_REQUEST:

<?php
// Retrieve the raw POST data
$jsonData = file_get_contents('php://input');
// Decode the JSON data into a PHP associative array
$data = json_decode($jsonData, true);
// Assign the decoded data to $_REQUEST
$_REQUEST = $data;
// Access the data and perform operations
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
// Perform further processing or respond to the request
// ...
?>

In this example, the JSON POST data is retrieved using file_get_contents('php://input') and stored in the $jsonData variable. The json_decode() function is then used to decode the JSON data into a PHP associative array, which is stored in the $data variable.

The decoded data is assigned to the $_REQUEST superglobal, making it accessible as an associative array. You can then access the received data using the appropriate array keys (e.g., $_REQUEST['name'], $_REQUEST['age']), and perform any necessary operations or processing based on your specific requirements.

Keep in mind that modifying the $_REQUEST superglobal is not recommended in some cases, as it combines data from various sources (GET, POST, and COOKIE), which may introduce security risks. It's generally safer to use the specific superglobal ($_GET, $_POST, or $_COOKIE) depending on the source of the data.

Conclusion

These methods provide different approaches to receive and process JSON POST requests in PHP. The choice of method depends on your specific use case and preferences. The first method gives you more control and flexibility, while the latter two methods utilize built-in PHP features for handling JSON data.

Atas ialah kandungan terperinci Cara Menerima JSON POST dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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