Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengakses Badan Permintaan JSON POST dalam PHP?

Bagaimana untuk Mengakses Badan Permintaan JSON POST dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-27 06:48:17
asal
110 orang telah melayarinya

How to Access JSON POST Request Body in PHP?

Bagaimana untuk Memperoleh Badan Permintaan POST sebagai JSON dalam PHP?

Apabila menyerahkan data JSON sebagai POST ke halaman PHP, mengakses nilainya mungkin kelihatan mencabar, kerana var_dump($_POST); mengembalikan tatasusunan kosong. Untuk mendapatkan semula muatan JSON, aliran input khas diperlukan.

Menggunakan php://input atau STDIN

Untuk mengakses badan entiti mentah permintaan POST:

$entityBody = file_get_contents('php://input');
Salin selepas log masuk

Sebagai alternatif, seseorang boleh menggunakan STDIN:

$entityBody = stream_get_contents(STDIN);
Salin selepas log masuk

php://input Pertimbangan

  • php://input ialah strim baca sahaja.
  • Ia harus digunakan dan bukannya $HTTP_RAW_POST_DATA kerana ia lebih dipercayai dan tidak bergantung pada php.ini arahan.
  • Php://input tidak disokong untuk permintaan enctype="multipart/form-data".

Memelihara Kebolehbacaan php://input

Memandangkan php://input tidak boleh dicari, ia hanya boleh dibaca sekali. Untuk mengekalkan strim input:

function detectRequestBody() {
    $rawInput = fopen('php://input', 'r');
    $tempStream = fopen('php://temp', 'r+');
    stream_copy_to_stream($rawInput, $tempStream);
    rewind($tempStream);

    return $tempStream;
}
Salin selepas log masuk

Mengendalikan Permintaan Berbilang Bahagian/Data Borang

Untuk permintaan berbilang bahagian/data borang, muatan JSON tersedia terus dalam $_POST superglobal.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Badan Permintaan JSON POST 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