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');
Alternativement, on peut utiliser STDIN :
$entityBody = stream_get_contents(STDIN);
php://input Considérations
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; }
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!