Menghuraikan Data Berbilang Bahagian/Borang-Data Mentah secara Manual dalam PHP untuk Permintaan PUT
Apabila bekerja dengan permintaan berbilang bahagian/data-bentuk, terutamanya dalam konteks operasi HTTP PUT, penghuraian terbina dalam PHP mungkin tidak memproses data mentah secara automatik seperti yang dilakukan untuk permintaan POST. Untuk mengatasi isu ini, penghuraian manual diperlukan.
Mendapatkan Data Mentah
Mula-mula, dapatkan semula isi permintaan HTTP mentah menggunakan file_get_contents('php://input' ).
Menghuraikan Pengepala Jenis Kandungan
Ekstrak sempadan berbilang bahagian daripada pengepala Jenis Kandungan menggunakan ungkapan biasa:
<code class="php">preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches); $boundary = $matches[1];</code>
Memisahkan Data
Membahagikan data mentah kepada blok individu yang dipisahkan oleh sempadan:
<code class="php">$a_blocks = preg_split("/-+$boundary/", $input); array_pop($a_blocks);</code>
Lelaran Lebih Blok
Gelung setiap blok dan huraikan kandungannya:
<code class="php">foreach ($a_blocks as $id => $block) { // Check if the block contains uploaded files if (strpos($block, 'application/octet-stream') !== FALSE) { // Extract file metadata using regex preg_match('/name=\"([^\"]*)\".*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches); } // Parse other form fields else { // Extract form field name and value using regex preg_match('/name=\"([^\"]*)\"[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches); } $a_data[$matches[1]] = $matches[2]; }</code>
Data yang dihuraikan kini boleh diakses daripada tatasusunan $a_data. Kaedah penghuraian tersuai ini membolehkan anda mengendalikan data berbilang bahagian/data bentuk mentah dalam PHP, yang amat berguna untuk senario yang melibatkan permintaan PUT.
Atas ialah kandungan terperinci Bagaimana Menghuraikan Data Berbilang Bahagian/Borang-Data Secara Manual untuk Permintaan PUT dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!