首頁 > 後端開發 > php教程 > 如何在不使用內建函數的情況下在 PHP 中解析多部分/表單資料 POST 請求?

如何在不使用內建函數的情況下在 PHP 中解析多部分/表單資料 POST 請求?

Mary-Kate Olsen
發布: 2024-12-05 04:29:10
原創
377 人瀏覽過

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

無需PHP 幹預即可解析Multipart/Form-Data POST 請求

儘管php://input 和$HTTP_RAW_POST_DATA 在處理多部分方面存在限制/form-data POST請求,有一種方法可以存取原始資料

RAW multipart/form-Data 解析的挑戰

PHP 會自動解析multipart/form-data 請求,導致無法直接取得原始數據。當處理 PHP 無法解析的格式不正確的資料時,這可能會成為一個問題。

繞過限制

解決方案在於使用 Apache 設定修改請求標頭指示。透過將 Content-Type 從 multipart/form-data 變更為 multipart/form-data-alternate,PHP 會被誘騙不解析請求。

Apache 設定修改

可以將以下程式碼加入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> 
登入後複製

指令變更傳入要求的Content-Type標頭從multipart/form-data 到/backend/XXX.php 到multipart/form-data-alternate,阻止 PHP 嘗試解析請求。

擷取原始資料並解析

修改配置後,可以從php://input取得原始資料並手動解析。但是,此方法有一個警告:$_FILES 陣列將為空。

這種解決方法並不理想,但它為預設 PHP 解析失敗的情況提供了一種解決方案。

以上是如何在不使用內建函數的情況下在 PHP 中解析多部分/表單資料 POST 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板