Maison >développement back-end >tutoriel php >Explication détaillée de l'exemple de réception de données brutes dans un post PHP
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!