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
203 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 :

1

$entityBody = file_get_contents('php://input');

Copier après la connexion

Alternativement, on peut utiliser STDIN :

1

$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 :

1

2

3

4

5

6

7

8

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!

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