Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menghuraikan Permintaan POST Berbilang Bahagian/Data dalam PHP Tanpa Menggunakan Fungsi Terbina dalam?

Bagaimanakah Saya Boleh Menghuraikan Permintaan POST Berbilang Bahagian/Data dalam PHP Tanpa Menggunakan Fungsi Terbina dalam?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 04:29:10451semak imbas

How Can I Parse Multipart/Form-Data POST Requests in PHP Without Using Built-in Functions?

Menghuraikan Permintaan POST Berbilang Bahagian/Borang-Data tanpa Campur Tangan PHP

Walaupun terdapat batasan php://input dan $HTTP_RAW_POST_DATA dalam mengendalikan berbilang bahagian /form-data POST permintaan, terdapat cara untuk mengakses data mentah secara langsung.

Cabaran RAW multipart/form-Data Parsing

PHP secara automatik menghuraikan permintaan berbilang bahagian/form-data, menjadikannya mustahil untuk mendapatkan data mentah secara langsung. Ini boleh menjadi masalah apabila berurusan dengan data yang tidak diformatkan dengan betul yang tidak dapat dihuraikan oleh PHP.

Menggodam Sekitar Had

Penyelesaian terletak pada mengubah suai pengepala permintaan menggunakan konfigurasi Apache arahan. Dengan menukar Jenis Kandungan daripada berbilang bahagian/data-bentuk kepada berbilang bahagian/bentuk-data-ganti, PHP tertipu untuk tidak menghuraikan permintaan.

Pengubahsuaian Konfigurasi Apache

Kod berikut boleh ditambahkan pada konfigurasi Apache:

<Location "/backend/XXX.php">
    SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE=
    RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE
</Location> 

Arahan ini menukar pengepala Jenis Kandungan bagi permintaan masuk ke /backend/XXX.php daripada multipart/form-data kepada multipart/form-data-alternate, menghalang PHP daripada cuba menghuraikan permintaan.

Mengambil Data Mentah dan Menghuraikan

Selepas mengubah suai konfigurasi, data mentah boleh diambil daripada php://input dan dihuraikan secara manual. Walau bagaimanapun, kaedah ini mempunyai satu kaveat: tatasusunan $_FILES akan kosong.

Penyelesaian ini tidak sesuai, tetapi ia menyediakan penyelesaian untuk situasi di mana penghuraian PHP lalai gagal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Permintaan POST Berbilang Bahagian/Data dalam PHP Tanpa Menggunakan Fungsi Terbina dalam?. 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