Maison  >  Article  >  développement back-end  >  Explication détaillée de trois méthodes d'obtention de données POST en PHP

Explication détaillée de trois méthodes d'obtention de données POST en PHP

墨辰丷
墨辰丷original
2018-05-29 14:43:388112parcourir

Cet article présente trois méthodes permettant à PHP d'obtenir des données POST. La première méthode est $_POST, la deuxième méthode consiste à utiliser file_get_contents et la troisième méthode consiste à utiliser la variable globale $GLOBALS.

Trois façons d'obtenir des données POST en php

Méthode 1, $_POST

$ _POST ou $_REQUEST Ce qui est stocké, ce sont les données formatées par PHP sous la forme clé=>valeur.

Méthode 2, utilisez file_get_contents("php://input")

Pour les données POST sans type de contenu spécifié, vous pouvez utiliser file_get_contents("php://input"); pour obtenir les données originales. En fait, toutes les données reçues par POST à ​​l'aide de PHP utilisent cette méthode. Quel que soit le type de contenu, l'inclusion de flux de fichiers binaires est également réalisable.

Comparé à $HTTP_RAW_POST_DATA, il met moins de pression sur la mémoire et ne nécessite aucun paramètre php.ini spécial.

php://input ne peut pas lire les données POST dont le type de contenu est multipart/form-data Vous devez définir la valeur always_populate_raw_post_data dans php.ini sur On.

php://input ne peut pas lire les données $_GET. En effet, les données $_GET sont écrites dans le champ PATH de l'en-tête de la requête http en tant que query_path, plutôt que dans la partie corps de la requête http.

Troisième méthode, utilisez la variable globale $GLOBALS['HTTP_RAW_POST_DATA']

Le POST est stocké dans $GLOBALS['HTTP_RAW_POST_DATA'] de données brutes.

Mais le fait que les données POST soient enregistrées dans $GLOBALS['HTTP_RAW_POST_DATA'] dépend du paramètre centent-Type. Ce n'est que lorsque PHP ne peut pas reconnaître le type de contenu que le POST sera enregistré ? les données sont renseignées dans la variable $GLOBALS['HTTP_RAW_POST_DATA'] telles quelles. Lorsque Content-Type=application/x-www-form-urlencoded, la variable est vide.

De plus, il est également incapable de lire les données POST dont le type de contenu est multipart/form-data. Vous devez également définir la valeur always_populate_raw_post_data dans php.ini sur On pour que PHP soit toujours activé. remplissez les données POST.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.


Recommandations associées :

Comment implémenter le développement de la fonction d'enveloppe rouge WeChat Cash en PHP

Les utilisations PHP continuent de comprendre les points clés consistant à sauter le code restant dans cette boucle

PHP WeChat simule la connexion et envoie un message à l'utilisateur

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