ホームページ >バックエンド開発 >PHPチュートリアル >PHP で生のマルチパート/フォームデータリクエストを手動で解析する方法は?

PHP で生のマルチパート/フォームデータリクエストを手動で解析する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 19:07:29382ブラウズ

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

PHP で生のマルチパート/フォーム データ データを手動で解析する

問題の概要

マルチパート/フォーム データ形式の生の HTTP リクエスト データを解析すると、 PHP では、特に自動的に解析されない PUT リクエストを介してデータを受信する場合は困難です。

手動解析による解決策

PHP は multipart/form-data を含む PUT リクエストを自動的に処理しないため、手動で解析が必要です。これを実現する方法は次のとおりです:

  1. 生データの読み取り: file_get_contents('php://input') を使用して生のリクエスト データを読み取ります。
  2. 境界の抽出: CONTENT_TYPE ヘッダーを解析して、マルチパート データ セグメントを区切る境界文字列を取得します。
  3. コンテンツの分割: 境界文字列に基づいて生データをブロックに分割します。 。末尾の「--」要素を削除します。
  4. ブロックの解析: 各ブロックを反復処理して、データ フィールドを識別して解析します:

    • アップロードされたファイル: application/octet-stream MIME タイプを使用したファイルのアップロードを示すブロックに一致します。 name 属性とバイナリ ファイルの内容を抽出します。
    • 非ファイル フィールド: フォーム データ フィールドを含むブロックと一致します。 name 属性と対応する値を抽出します。

使用法

  1. 空の配列を引数として parse_raw_http_request 関数に参照渡しします。
  2. 関数を呼び出して、解析されたデータを配列に入力します。
  3. フォーム フィールド名に対応する配列キーを使用して、解析されたデータにアクセスします。

以上がPHP で生のマルチパート/フォームデータリクエストを手動で解析する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。