Maison  >  Article  >  développement back-end  >  PHP obtient des données dans différents formats dans HTTP POST

PHP obtient des données dans différents formats dans HTTP POST

藏色散人
藏色散人avant
2019-04-27 09:43:122806parcourir

La méthode POST dans le protocole HTTP a plusieurs formats de protocoles de données, qui sont identifiés par différents types de contenu dans l'en-tête HTTP. Les plus couramment utilisés sont

application/x-www-form-urlencoded, qui est le plus courant. , c'est-à-dire le format du formulaire from. Dans l'en-tête HTTP, c'est Content-Type: application/x-www-form-urlencoded.

multipart/form-data. Ceci est utilisé pour télécharger des fichiers. Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWBrut. Ce n'est pas C'est particulièrement couramment utilisé. Les données transmises n'ont qu'un seul paragraphe dans le corps HTTP et ne sont pas stockées sous forme de paires clé-valeur, c'est

, <.>,

, Content-Type: application/json, etc. sous forme de Content-Type: textContent-Type: application/xmlPour les données du formulaire Content-Type: text/xml, en php, utilisez

pour l'obtenir directement Il n'y a rien de spécial.

Content-Type: application/x-www-form-urlencoded$_POST['name']Les données dans ce format peuvent être utilisées en php.

peut obtenir des données de caractères en utilisant

Content-Type: multipart/form-data;  Pour les données au format Raw, il n'y a aucun moyen de les obtenir. en utilisant les deux méthodes ci-dessus, et d'autres méthodes doivent être utilisées $_POST['name']$_FILES['file']1. Utilisez

pour obtenir ; écrivez un fichier php simple et testez-le

Utilisez postman pour tester. il file_get_contents("php://input")

<?php
$test=file_get_contents("php://input");
echo $test;

Pas de problème, vous pouvez le recevoir

PHP obtient des données dans différents formats dans HTTP POST2 Utilisez

pour recevoir

et testez-le avec. facteur $GLOBALS['HTTP_RAW_POST_DATA']

<?php
$test=$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;];
echo $test;

Oh merde, quelque chose s'est mal passé, et il n'y a eu aucune invite, j'ai trouvé

cet index de tableau, que diable après un peu de Google, j'ai vu ce paragraphe. sur le site officiel de php PHP obtient des données dans différents formats dans HTTP POST

HTTP_RAW_POST_DATA

Il s'avère que

est déjà disponible en php5.6 Il a été abandonné et a été supprimé dans les versions postérieures à php7.0. La version php que j'utilise est la 7.2, donc il doit y avoir quelque chose qui ne va pas PHP obtient des données dans différents formats dans HTTP POST

D'accord, alors utilisez simplement

pour l'obtenir HTTP_RAW_POST_DATA

Dans le développement réel, les frameworks sont généralement utilisés. thinkphp plus Dans tp5.0, vous pouvez utiliser la fonction getInput() de Request pour obtenir les données en Raw

file_get_contents("php://input")

Testez-les

<?php

namespace app\index\controller;

use think\Request;

class Index
{
    public function index(Request $request)
    {
        echo $request->getInput();
    }
}

Pas de problème, vous pouvez l'obtenir normalement

PHP obtient des données dans différents formats dans HTTP POSTLa méthode d'obtention des données HTTP POST en php sera présentée ici en premier, j'espère qu'elle sera utile aux amis qui en ont besoin.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer