(PHP 8 >= 8.4.0)
request_parse_body — Lee y analiza el cuerpo de la petición y devuelve el resultado
Esta función lee el cuerpo de la petición y lo analiza según
la cabecera Content-Type
. Actualmente, se admiten dos tipos de
contenido:
application/x-www-form-urlencoded
multipart/form-data
Esta función se utiliza principalmente para analizar las peticiones
multipart/form-data
con verbos HTTP distintos de
POST
que no rellenan automáticamente las superglobales
$_POST y $_FILES.
request_parse_body() consume el cuerpo de la petición sin
almacenarlo en el búfer en el flujo php://input
.
options
options
acepta un array asociativo
para sobrescribir los parámetros globales de php.ini siguientes para
el análisis del cuerpo de la petición.
max_file_uploads
max_input_vars
max_multipart_body_parts
post_max_size
upload_max_filesize
request_parse_body() devuelve un array con el equivalente
de $_POST en el índice 0
y
$_FILES en el índice 1
.
Cuando el cuerpo de la petición no es válido
según la cabecera Content-Type
,
se lanza una RequestParseBodyException.
Se lanza una ValueError cuando
options
contiene claves no válidas,
o valores no válidos para la clave correspondiente.
Ejemplo #1 Ejemplo de request_parse_body()
<?php
// Analiza la petición y almacena el resultado en las superglobales $_POST y $_FILES.
[$_POST, $_FILES] = request_parse_body();
// Muestra el contenido de un fichero subido
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
Ejemplo #2 Ejemplo de request_parse_body() con opciones personalizadas
<?php
// form.php
assert_logged_in();
// Solo para este formulario, se permite un tamaño de subida mayor.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// Hacer algo con los ficheros subidos.
?>