Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengekstrak badan JSON POST dalam PHP?

Bagaimana untuk mengekstrak badan JSON POST dalam PHP?

DDD
DDDasal
2024-12-16 17:02:10429semak imbas

How to Extract a JSON POST Body in PHP?

Mengekstrak JSON Post Body dalam PHP

Pertimbangkan data JSON POST berikut:

{a:1}

Dalam PHP, lalai $_POST pembolehubah tidak akan mengandungi data ini. Sebaliknya, akses badan permintaan HTTP mentah menggunakan:

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

Sebagai alternatif, gunakan pemalar STDIN:

$entityBody = stream_get_contents(STDIN);

Perhatikan bahawa php://input tidak boleh dicari dan hanya boleh dibaca sekali . Untuk badan besar, pertimbangkan untuk menggunakan fail sementara untuk mengekalkan sumber strim:

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

    return $tempStream;
}

Pengecualian berlaku apabila menentukan pengepala "multipart/form-data" dalam permintaan POST, kerana PHP sudah menghuraikan data ini ke dalam $_POST superglobal.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak badan JSON POST dalam 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