PHP Conference Nagoya 2025

request_parse_body

(PHP 8 >= 8.4.0)

request_parse_bodyLit et analyse le corps de la requête et retourne le résultat

Description

request_parse_body(?array $options = null): array

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.

Attention

request_parse_body() consomme le corps de la requête sans le mettre en mémoire tampon dans le flux php://input.

Liste de paramètres

options
Le paramètre 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

Valeurs de retour

request_parse_body() retourne un tableau avec l'équivalent de $_POST à l'index 0 et $_FILES à l'index 1.

Erreurs / Exceptions

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.

Exemples

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.
?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top