Heim > php教程 > PHP开发 > Zusammenfassung mehrerer Methoden zum Abrufen von POST-Daten mit PHP

Zusammenfassung mehrerer Methoden zum Abrufen von POST-Daten mit PHP

高洛峰
Freigeben: 2016-12-23 15:56:01
Original
1426 Leute haben es durchsucht

1. Mehrere Methoden für PHP, um POST-Daten zu erhalten

Methode 1. Die gebräuchlichste Methode ist: $_POST['fieldname'];

Hinweis: Dies ist nur möglich empfangen werden Content-Type: application/x-www-form-urlencoded übermittelte Daten
Erklärung: Das sind die Daten POST aus dem Formular

Methode 2, file_get_contents("php://input");

Beschreibung:
Ermöglicht das Lesen der Rohdaten von POST.
Es belastet den Speicher weniger als $HTTP_RAW_POST_DATA und erfordert keine speziellen php.ini-Einstellungen.
php://input kann nicht mit enctype="multipart/form-data" verwendet werden.
Erklärung:
Für POST-Daten ohne angegebenen Inhaltstyp können Sie file_get_contents("php://input"); verwenden, um die Originaldaten abzurufen.
Tatsächlich kann diese Methode verwendet werden, um beliebige POST-Daten mit PHP zu empfangen. Unabhängig vom Inhaltstyp ist auch die Einbeziehung binärer Dateiströme akzeptabel.
Methode 2 ist also die sicherste Methode

Methode 3, $GLOBALS['HTTP_RAW_POST_DATA'];

Erklärung:
Generieren Sie immer die Variable $HTTP_RAW_POST_DATA, die Rohdaten enthält POST-Daten.
Diese Variable wird nur generiert, wenn Daten eines nicht erkannten MIME-Typs gefunden werden.
$HTTP_RAW_POST_DATA ist für enctype="multipart/form-data"-Formulardaten nicht verfügbar
Wenn die geposteten Daten von PHP nicht erkannt werden, können Sie $GLOBALS['HTTP_RAW_POST_DATA'] verwenden, um sie zu empfangen,
wie Text /xml oder Soap usw.
Erklärung:
$GLOBALS['HTTP_RAW_POST_DATA'] speichert die Originaldaten von POST.
$_POST oder $_REQUEST speichert von PHP formatierte Daten in der Form key=>value.
Aber ob die POST-Daten in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert werden, hängt von der Centent-Type-Einstellung ab, d. h. der Content-Type muss beim POSTing von Daten explizit angegeben werden: application/x-www-form-urlencoded , POST Nur die Daten werden in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert

2. Demonstration

1. Wie erhält PHP die XML-Daten von POST und analysiert die XML-Daten

Wenn wir beispielsweise ein WeChat-Unternehmenskonto entwickeln, wie verarbeiten wir dann die Daten, auf die Benutzer antworten?
Dokument: http://qydev.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A% E6%B6%88%E6%81%AF
Schauen Sie sich zunächst die Dokumentation an und Sie werden wissen, dass der WeChat-Server nach der Aktivierung des Entwicklungsmodus eine Zeichenfolge mit XML-Daten postet, wenn der Benutzer auf die Anwendung antwortet zur verifizierten Rückruf-URL

Angenommen, die URL ist http://www.xxx.com
HTTP-Anfragemethode: POST
http://www.xxx.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS× tamp=13500001234&nonce=123412323

Der XML-Inhalt von POST ist:

<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[fromUser]]></FromUserName> 
   <CreateTime>1348831860</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[this is a test]]></Content>
   <MsgId>1234567890123456</MsgId>
   <AgentID>1</AgentID>
</xml>
Nach dem Login kopieren

Wie erhalten Sie diesen Inhalt?
Sie können es derzeit verwenden: Methode 2 (file_get_contents("php://input"), Methode 3 ($GLOBALS['HTTP_RAW_POST_DATA'])

Methode 2 (file_get_contents("php : //input")):

$input = file_get_contents("php://input"); //接收POST数据
$xml = simplexml_load_string($input); //提取POST数据为simplexml对象
var_dump($xml);
Nach dem Login kopieren

Methode 3 ($GLOBALS['HTTP_RAW_POST_DATA'])

$input = $GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;];
libxml_disable_entity_loader(true);
$xml = simplexml_load_string($input, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
var_dump($xml);
Nach dem Login kopieren


Mehr PHP Get POST Bitte beachten Sie die PHP-Chinese-Website für verwandte Artikel zu verschiedenen Möglichkeiten der Datenzusammenfassung!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage