(PHP 8 >= 8.4.0)
request_parse_body — 读取并解析请求体并返回结果
此函数读取请求体并根据 Content-Type
标头对其进行解析。目前支持两种内容类型
application/x-www-form-urlencoded
multipart/form-data
此函数主要用于解析 HTTP 方法不是 POST
的 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
当请求体根据 Content-Type
标头无效时,将抛出 RequestParseBodyException。
当 options
包含无效键或对应键的无效值时,将抛出 ValueError。
示例 #1 request_parse_body() 示例
<?php
// 解析请求并将结果存储在 $_POST 和 $_FILES 超全局变量中。
[$_POST, $_FILES] = request_parse_body();
// 输出一些传输文件的內容
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
示例 #2 使用自定义选项的 request_parse_body() 示例
<?php
// form.php
assert_logged_in();
// 仅针对此表单,我们允许更大的上传大小。
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// 对上传的文件执行某些操作。
?>