request_parse_body

Read and parse the request body and return the result

説明

array request_parse_body(arraynull $options = null)

This function reads the request body and parses it according to the Content-Type header. Currently, two content types are supported:

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

This function is used primarily to parse multipart/form-data requests with HTTP verbs other than POST which do not automatically populate the $_POST and $_FILES superglobals.

警告

request_parse_body consumes the request body without buffering it to the php://input stream.

パラメータ

options
The options parameter accepts an associative array to override the following global php.ini settings for parsing of the request body.
  • max_file_uploads
  • max_input_vars
  • max_multipart_body_parts
  • post_max_size
  • upload_max_filesize

戻り値

request_parse_body returns an array pair with the equivalent of $_POST at index 0 and $_FILES at index 1.

エラー / 例外

When the request body is invalid, according to the Content-Type header, a RequestParseBodyException is thrown.

A ValueError is thrown when options contains invalid keys, or invalid values for the corresponding key.

例1 request_parse_body example

<?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 example with customized options

<?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.
?>