Maison > développement back-end > tutoriel php > Comment accéder au corps de la requête JSON POST en PHP ?

Comment accéder au corps de la requête JSON POST en PHP ?

Susan Sarandon
Libérer: 2024-12-27 06:48:17
original
107 Les gens l'ont consulté

How to Access JSON POST Request Body in PHP?

Comment acquérir le corps d'une requête POST au format JSON en PHP ?

Lors de la soumission de données JSON au format POST à ​​une page PHP, l'accès à sa valeur peut semble difficile, car var_dump($_POST); renvoie un tableau vide. Pour récupérer la charge utile JSON, un flux d'entrée spécial est requis.

Utilisation de php://input ou STDIN

Pour accéder au corps brut de l'entité d'une requête POST :

$entityBody = file_get_contents('php://input');
Copier après la connexion

Alternativement, on peut utiliser STDIN :

$entityBody = stream_get_contents(STDIN);
Copier après la connexion

php://input Considérations

  • php://input est un flux en lecture seule.
  • Il devrait être utilisé à la place de $HTTP_RAW_POST_DATA car il est plus fiable et ne dépend pas de php.ini directives.
  • Php://input n'est pas pris en charge pour les requêtes enctype="multipart/form-data".

Préserver la lisibilité de php://input

Puisque php://input n'est pas consultable, il ne peut être lu qu'une seule fois. Pour préserver le flux d'entrée :

function detectRequestBody() {
    $rawInput = fopen('php://input', 'r');
    $tempStream = fopen('php://temp', 'r+');
    stream_copy_to_stream($rawInput, $tempStream);
    rewind($tempStream);

    return $tempStream;
}
Copier après la connexion

Gestion des requêtes multipart/form-data

Pour les requêtes multipart/form-data, la charge utile JSON est disponible directement dans le $_POST superglobal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal