Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Menghuraikan Data Berbilang Bahagian/Borang-Data Secara Manual untuk Permintaan PUT dalam PHP?

Bagaimana Menghuraikan Data Berbilang Bahagian/Borang-Data Secara Manual untuk Permintaan PUT dalam PHP?

Patricia Arquette
Lepaskan: 2024-10-29 11:32:30
asal
870 orang telah melayarinya

How to Manually Parse Multipart/Form-Data Data for PUT Requests in PHP?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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=\&quot;([^\&quot;]*)\&quot;.*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches);
    }
    // Parse other form fields
    else
    {
        // Extract form field name and value using regex
        preg_match('/name=\&quot;([^\&quot;]*)\&quot;[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches);
    }
    $a_data[$matches[1]] = $matches[2];
}</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan