Menghuraikan Data Mentah Berbilang Bahagian/Borang-Data Secara Manual dalam PHP
Apabila memproses data daripada permintaan HTTP PUT dengan format data berbilang bahagian/bentuk, PHP tidak menghuraikan data mentah secara automatik. Akibatnya, pembangun mungkin menghadapi cabaran dalam mengekstrak maklumat daripada permintaan sedemikian.
Penyelesaian:
Baca Data Permintaan Mentah:
Ekstrak Sempadan daripada Jenis Kandungan Pengepala:
Pisah Data Mengikut Sempadan:
Asingkan Blok ke dalam Medan Individu:
Untuk setiap blok:
Dimuat naik Fail:
Lain-lain Medan:
示例 Kod:
<code class="php">function parse_raw_http_request(array &$a_data) { $input = file_get_contents('php://input'); preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches); $boundary = $matches[1]; $a_blocks = preg_split("/-+$boundary/", $input); array_pop($a_blocks); foreach ($a_blocks as $id => $block) { if (empty($block)) continue; if (strpos($block, 'application/octet-stream') !== FALSE) { preg_match('/name=\"([^\"]*)\".*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches); } else { preg_match('/name=\"([^\"]*)\"[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches); } $a_data[$matches[1]] = $matches[2]; } }</code>
Penggunaan:
<code class="php">$a_data = array(); parse_raw_http_request($a_data); var_dump($a_data);</code>
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Data Berbilang Bahagian/Borang Mentah Secara Manual dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!