Maison  >  Article  >  développement back-end  >  Explication détaillée de l'exemple de réception de données brutes dans un post PHP

Explication détaillée de l'exemple de réception de données brutes dans un post PHP

小云云
小云云original
2018-02-27 13:35:143545parcourir

Cet article partage principalement avec vous les exemples détaillés de réception de données brutes en post en PHP. J'espère que cela pourra aider tout le monde.

Habituellement, les utilisateurs utilisent les formulaires Web du navigateur pour publier des données sur le serveur. Nous utilisons PHP pour recevoir les données que les utilisateurs POSTent sur le serveur et les traitons de manière appropriée. Mais dans certains cas, si l'utilisateur utilise un logiciel client pour envoyer des données de publication au programme PHP du serveur et ne peut pas utiliser $_POST pour les identifier, comment doit-il être géré ?

Méthode $_POST pour recevoir des données

La méthode $_POST est un tableau de variables transmis via la méthode HTTP POST, qui est une méthode globale automatique variable. Par exemple, si vous utilisez $_POST['name'], vous pouvez recevoir des données publiées à partir de formulaires Web et de pages Web de manière asynchrone. Autrement dit, $_POST ne peut recevoir que des données soumises avec le type de document Content-Type : application/x-www. -form-urlencoded.

Méthode $GLOBALS['HTTP_RAW_POST_DATA'] pour recevoir des données

Si les données envoyées par courrier ne sont pas un type de document que PHP peut reconnaître, comme text/xml Ou du savon, etc., nous pouvons utiliser $GLOBALS['HTTP_RAW_POST_DATA'] pour recevoir. La variable $HTTP_RAW_POST_DATA contient les données brutes POST. Cette variable est générée uniquement lorsque des données de types MIME non reconnus sont rencontrées. $HTTP_RAW_POST_DATA n'est pas disponible pour les données de formulaire enctype="multipart/form-data". C'est-à-dire que l'utilisation de $HTTP_RAW_POST_DATA ne peut pas recevoir les données publiées depuis le formulaire Web.

Recevoir des données via php://input

Si la meilleure façon d'accéder aux données POST d'origine est php://input. php://input permet de lire les données brutes d'un 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, tandis que php://input ne peut pas être utilisé avec enctype="multipart/form-data".

Par exemple, l'utilisateur utilise une application client pour publier un fichier sur le serveur. Nous ne nous soucions pas du contenu du fichier, mais nous voulons enregistrer complètement le fichier sur le serveur. Nous pouvons utiliser le code suivant :


 $input = file_get_contents('php://input'); 
file_put_contents($original, $input); //$original为服务器上的文件

Le code ci-dessus utilise file_get_contents('php://input') pour recevoir les données de publication, puis écrit les données dans le fichier $original. En fait, cela peut être compris comme le téléchargement d'un fichier du client vers le serveur. Il existe de nombreuses applications de ce type, en particulier lorsque notre développement PHP doit développer conjointement des produits avec C, C++ et d'autres développements d'applications. .

Recommandations associées :

php résout le problème de perte lors de la publication de grandes quantités de données

Analyse de curl obtenir une demande de publication en php

Comment gérer les exceptions affichées lorsque la publication soumet des données

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