(PHP 8 >= 8.4.0)
request_parse_body — Lê e analisa o corpor da requisição e retorna o resultado
Esta função lê o corpo da requisição e analisa-o de acordo com o
cabeçalho Content-Type
. Atualmente, dois tipos de conteúdo são
suportados:
application/x-www-form-urlencoded
multipart/form-data
Esta função é usada primariamente para analisar
requisições multipart/form-data
com verbos HTTP diferentes de
POST
que não populam automaticamente as
superglobais $_POST e $_FILES.
request_parse_body() consome o corpo da requisição sem
fazer buffer para o fluxo php://input
.
options
options
aceita um array associativo
para substituir as seguintes configurações globais do php.ini para analisar o
corpo da requisição.
max_file_uploads
max_input_vars
max_multipart_body_parts
post_max_size
upload_max_filesize
request_parse_body() retorna um array com o
equivalente de $_POST no índice 0
e o de
$_FILES no índice 1
.
Quando o corpo da requisição for inválido,
de acordo com o cabeçalho Content-Type
,
uma exceção RequestParseBodyException é lançada.
Uma exceção ValueError é lançada quando
options
contiver chaves inválidas ou
valores inválidos para a chave correspondente.
Exemplo #1 Exemplo de request_parse_body()
<?php
// Analisa o resultado e armazena-o nas superglobais $_POST e $_FILES.
[$_POST, $_FILES] = request_parse_body();
// Exibe o conteúdo de um arquivo transferido
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
Exemplo #2 Exemplo de request_parse_body() com opções personalizadas
<?php
// form.php
assert_logged_in();
// Apenas para este formulário, um tamanho maior de envio é permitido.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// Faz algo com os arquivos enviados.
?>