Heim  >  Artikel  >  Backend-Entwicklung  >  PHP erhält Daten in verschiedenen Formaten in HTTP POST

PHP erhält Daten in verschiedenen Formaten in HTTP POST

藏色散人
藏色散人nach vorne
2019-04-27 09:43:122852Durchsuche

Die POST-Methode im HTTP-Protokoll verfügt über mehrere Formate von Datenprotokollen, die durch unterschiedliche Inhaltstypen im HTTP-Header identifiziert werden. Die am häufigsten verwendeten sind

application/x-www-form-urlencoded , das ist das Format des From-Formulars: Content-Type: application/x-www-form-urlencoded.

multipart/form-data. Es wird zum Hochladen von Dateien verwendet Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWRoh. Es wird besonders häufig verwendet. Die übertragenen Daten haben nur einen Absatz im HTTP-Körper und werden nicht in Form von Schlüssel-Wert-Paaren gespeichert 🎜>,

,

, Content-Type: application/json usw. >Content-Type: textFür die Daten des Formulars Content-Type: application/xml verwenden Sie in PHP Content-Type: text/xml, um sie direkt abzurufen

Content-Type: application/x-www-form-urlencodedDaten in diesem Format können in PHP verwendet werden. $_POST['name'] können Zeichendaten mit

abrufen. Für Daten im Raw-Format gibt es keine Möglichkeit, sie mit zu erhalten Die oben genannten zwei Methoden und andere Methoden müssen verwendet werden Content-Type: multipart/form-data; $_POST['name']1. Verwenden Sie $_FILES['file'], um eine einfache PHP-Datei zu erhalten und sie zu testen.

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

Testen Sie sie mit dem Postboten 🎜>

file_get_contents("php://input")Kein Problem, Sie können es erhalten

2. Verwenden Sie

, um

<?php
$test=$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;];
echo $test;
PHP erhält Daten in verschiedenen Formaten in HTTP POSTTesten Sie es mit dem Postboten

$GLOBALS['HTTP_RAW_POST_DATA']Oh Scheiße, etwas ist schief gelaufen, sodass nichts gefunden wurde

Was zum Teufel ist dieser Array-Index? Ich habe ihn gegoogelt und diesen Absatz auf der offiziellen Website von PHP gesehen:

PHP erhält Daten in verschiedenen Formaten in HTTP POST

Es stellt sich heraus, dass

in PHP5.6 aufgegeben wurde. Es wurde in Versionen nach PHP7.0 gelöscht, und es muss ein Fehler aufgetreten sein HTTP_RAW_POST_DATA

Okay, dann verwenden Sie einfach

, um es zu erhalten PHP erhält Daten in verschiedenen Formaten in HTTP POST

In der tatsächlichen Entwicklung verwende ich im Allgemeinen Thinkphp mehr. In tp5.0 können Sie die Funktion getInput() verwenden der Anfrage, um die Daten in Raw zu erhalten

<?php

namespace app\index\controller;

use think\Request;

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

file_get_contents("php://input")

Kein Problem, Sie können es normal abrufen

Die Methode zum Abrufen Hier werden HTTP-POST-Daten in PHP vorgestellt. Ich hoffe, dass sie für Freunde hilfreich sind, die sie benötigen!

Das obige ist der detaillierte Inhalt vonPHP erhält Daten in verschiedenen Formaten in HTTP POST. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:aliyun.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen