(PHP 8 >= 8.4.0)
request_parse_body — Lit et analyse le corps de la requête et retourne le résultat
Cette fonction lit le corps de la requête et l'analyse en fonction de
l'en-tête Content-Type
. Actuellement, deux types de
contenu sont pris en charge :
application/x-www-form-urlencoded
multipart/form-data
Cette fonction est principalement utilisée pour analyser les requêtes
multipart/form-data
avec des verbes HTTP autres que
POST
qui ne peuplent pas automatiquement les superglobales
$_POST et $_FILES.
request_parse_body() consomme le corps de la requête sans
le mettre en mémoire tampon dans le flux php://input
.
options
options
accepte un tableau associatif
pour remplacer les paramètres globaux du php.ini suivants pour
l'analyse du corps de la requête.
max_file_uploads
max_input_vars
max_multipart_body_parts
post_max_size
upload_max_filesize
request_parse_body() retourne un tableau avec l'équivalent
de $_POST à l'index 0
et
$_FILES à l'index 1
.
Lorsque le corps de la requête est invalide
selon l'en-tête Content-Type
,
une RequestParseBodyException est lancée.
Une ValueError est lancée lorsque
options
contient des clés invalides,
ou des valeurs invalides pour la clé correspondante.
Exemple #1 Exemple de request_parse_body()
<?php
// Analyse la requête et stocke le résultat dans les superglobales $_POST et $_FILES.
[$_POST, $_FILES] = request_parse_body();
// Affiche le contenu d'un fichier transféré
echo file_get_contents($_FILES['file_name']['tmp_name']);
?>
Exemple #2 Exemple de request_parse_body() avec des options personnalisées
<?php
// form.php
assert_logged_in();
// Seulement pour ce formulaire, nous autorisons une taille de téléchargement plus grande.
[$_POST, $_FILES] = request_parse_body([
'post_max_size' => '10M',
'upload_max_filesize' => '10M',
]);
// Faire quelque chose avec les fichiers téléchargés.
?>