PHPのお勉強!

PHP TOP

request_parse_body

(PHP 8 >= 8.4.0)

request_parse_bodyリクエストボディを読み取り、解析して結果を返す

説明

request_parse_body(?array $options = null): array

この関数は リクエストボディを読み取り、 Content-Type ヘッダーに基づき解析します。 現在、2つのコンテンツタイプをサポートしています:

  • application/x-www-form-urlencoded
  • multipart/form-data

この関数は、 POST 以外のHTTPメソッドで送信された multipart/form-data を解析するために使用されます。 これらのリクエストでは、スーパーグローバルの $_POST$_FILES は自動的に設定されません。

警告

request_parse_body() は、リクエストボディを php://input ストリームにバッファせずに処理します。

パラメータ

options
options パラメータは連想配列を受け取り、 リクエストボディの解析に関連する以下のグローバル php.ini の設定を上書きします。
  • max_file_uploads
  • max_input_vars
  • max_multipart_body_parts
  • post_max_size
  • upload_max_filesize

戻り値

request_parse_body() は、 $_POST に相当するものを インデックス 0 に、 $_FILES に相当するものを 1 に 持つ配列ペアを返します。

エラー / 例外

Content-Type ヘッダーに基づいて解析を試み、リクエストボディが無効な場合、 RequestParseBodyException をスローします。

options に無効なキーが含まれている、 または、対応するキーに無効な値が設定されている場合は、 ValueError をスローします。

例1 request_parse_body() の例

<?php
// Parse request and store result in the $_POST and $_FILES superglobals.
[$_POST, $_FILES] = request_parse_body();
// Echo the content of some transferred file
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>

例2 オプションを設定した request_parse_body() の例

<?php
// form.php

assert_logged_in();

// Only for this form, we allow a bigger upload size.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);

// Do something with the uploaded files.
?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top