Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengakses Data JSON dengan betul dari Permintaan PHP POST?

Bagaimana untuk Mengakses Data JSON dengan betul dari Permintaan PHP POST?

Barbara Streisand
Barbara Streisandasal
2024-12-23 17:26:10672semak imbas

How to Properly Access JSON Data from PHP POST Requests?

Cara Mengekstrak Data JSON daripada Permintaan PHP POST

Apabila menyerahkan data JSON kepada skrip PHP melalui permintaan POST, mengakses badan boleh mengelirukan. Menggunakan var_dump($_POST); akan mengembalikan tatasusunan kosong.

Penyelesaian: Menggunakan php://input

Untuk mengakses badan permintaan, PHP menyediakan php://input:

$entityBody = file_get_contents('php://input');

Strim ini mengandungi data POST mentah. Anda juga boleh menggunakan stream_get_contents(STDIN) kerana STDIN ialah alias untuk php://input.

注意事项:

  • php://input ialah tidak boleh dicari, jadi ia hanya boleh dibaca sekali.
  • Untuk set data yang besar, pertimbangkan untuk menimbalkannya dengan strim sementara, seperti:
function detectRequestBody() {
    $rawInput = fopen('php://input', 'r');
    $tempStream = fopen('php://temp', 'r+');
    stream_copy_to_stream($rawInput, $tempStream);
    rewind($tempStream);

    return $tempStream;
}

Had:

php://input tidak tersedia untuk permintaan dengan Content-Type: multipart/form -data, kerana PHP mengendalikan data berbilang bahagian secara asli.

Contoh:

Untuk mengakses objek JSON {a:1} dalam kod PHP anda, gunakan:

$json = json_decode(file_get_contents('php://input'));
echo $json->a; // 1

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Data JSON dengan betul dari Permintaan PHP POST?. 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