Maison  >  Article  >  développement back-end  >  Existe-t-il un moyen d'obtenir les paramètres de publication en php ?

Existe-t-il un moyen d'obtenir les paramètres de publication en php ?

L
Loriginal
2020-06-01 16:52:113341parcourir

Existe-t-il un moyen d'obtenir les paramètres de publication en php ?

Plusieurs façons pour PHP d'obtenir les paramètres de publication

Le type de données reconnu par PHP par défaut est application/x -www .form-urlencoded type de données standard.

1. $_POST['paramName'] Uniquement lorsque le Content-Type est application/x-www-form-urlencoded ou multipart/form-data, PHP modifiera le paquet de requête HTTP La partie correspondante du les données du corps sont renseignées dans la variable globale $_POST et PHP ignore les autres situations. Les données renseignées dans le tableau $_POST sont le résultat de l'analyse urldecode().

2. file_get_contents("php://input") convient à la plupart des types de contenu.

php://input permet de lire les données brutes du POST. Il exerce moins de pression sur la mémoire que $HTTP_RAW_POST_DATA et ne nécessite aucun paramètre php.ini spécial. php://input ne peut pas être utilisé avec enctype="multipart/form-data".

3. $GLOBALS['HTTP_RAW_POST_DATA'] ; génère toujours la variable $HTTP_RAW_POST_DATA contenant les données POST d'origine. Cette variable n'est générée que lorsque des données d'un type MIME non reconnu sont rencontrées. $HTTP_RAW_POST_DATA n'est pas disponible pour les données de formulaire enctype="multipart/form-data".

Si les données publiées ne sont pas reconnues par PHP, vous pouvez utiliser $GLOBALS['HTTP_RAW_POST_DATA'] pour les recevoir, comme du texte/xml ou du savon, etc. Vous devez définir la valeur always_populate_raw_post_data dans php.ini sur On afin que PHP remplisse toujours les données POST dans la variable $http_raw_post_data.

En regardant la documentation officielle, dans les versions supérieures, cette variable $HTTP_RAW_POST_DATA est obsolète
Cette fonctionnalité était DÉPRECÉE dans PHP 5.6.0, et SUPPRIMÉE depuis PHP 7.0.0 En général, php://. inputdoit être utilisé à la place de $HTTP_RAW_POST_DATA.

Résumé :

1, Coentent-Type n'est utilisé que lorsque la valeur est application/x-www-data-urlencoded et multipart/form-data. PHP remplira les données correspondantes dans le paquet de requête http dans la variable globale $_POST

2 Lorsque le type Content-Type n'est pas reconnu par PHP, il remplira les données correspondantes dans le paquet de requête http. la variable $.HTTP_RAW_POST_DATA

3 Uniquement lorsque le Coentent-Type n'est pas multipart/form-data, PHP remplira les données correspondantes dans le paquet de requête http dans php://input, sinon ce sera le cas. dans d'autres cas. La longueur du remplissage, spécifiée par Coentent-Length.

4. Uniquement lorsque le Content-Type est application/x-www-data-urlencoded, les données php://input sont cohérentes avec les données $_POST.

5. Les données php://input sont toujours les mêmes que $HTTP_RAW_POST_DATA. Elles ne lisent que les données dont le type de contenu n'est pas multipart/form-data. Cependant, php://input est plus efficace que $. HTTP_RAW_POST_DATA. , et aucun paramètre spécial n'est requis pour php.ini

6 PHP remplira la partie query_path du champ PATH dans la variable globale $_GET. Normalement, le corps d'une requête http soumise par la méthode GET est vide.

7, 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 chemin_requête, plutôt que dans la partie corps de la requête http.

8. S'il s'agit d'un format application/x-www-form-urlencoded et multipart/form-data, utilisez $_POST

9. xml, application /json, soap, utilisez file_get_contents('php://input');

Tutoriel recommandé : "Tutoriel PHP"

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