Ausführliche Erläuterung des Beispiels zum Empfangen von Rohdaten im PHP-Beitrag

小云云
Freigeben: 2023-03-20 14:26:02
Original
3604 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich detaillierte Beispiele für den Posteingang von Rohdaten in PHP vorgestellt. Ich hoffe, dass er allen helfen kann.

Normalerweise verwenden Benutzer Browser-Webformulare, um Daten an den Server zu senden. Wir verwenden PHP, um die Daten, die Benutzer an den Server senden, zu empfangen und entsprechend zu verarbeiten. Aber in einigen Fällen, wenn der Benutzer Client-Software verwendet, um Postdaten an das PHP-Programm des Servers zu senden, und diese nicht mit $_POST identifizieren kann, wie sollte damit umgegangen werden?

$_POST-Methode zum Empfangen von Daten

$_POST-Methode ist ein Array von Variablen, die über die HTTP-POST-Methode übergeben werden, bei der es sich um eine automatische globale Methode handelt Variable. Wenn Sie beispielsweise $_POST['name'] verwenden, können Sie von Webformularen und Webseiten gepostete Daten asynchron empfangen. Das heißt, $_POST kann nur Daten empfangen, die mit dem Dokumenttyp Content-Type: application/x-www übermittelt wurden -form-urlencoded.

$GLOBALS['HTTP_RAW_POST_DATA']-Methode zum Empfangen von Daten

Wenn es sich bei den per Post gesendeten Daten nicht um einen Dokumenttyp handelt, den PHP erkennen kann, z. B text/xml Oder Soap usw., wir können $GLOBALS['HTTP_RAW_POST_DATA'] zum Empfangen verwenden. Die Variable $HTTP_RAW_POST_DATA enthält die POST-Rohdaten. Diese Variable wird nur generiert, wenn Daten unbekannter MIME-Typen gefunden werden. $HTTP_RAW_POST_DATA ist für enctype="multipart/form-data"-Formulardaten nicht verfügbar. Mit anderen Worten: Die Verwendung von $HTTP_RAW_POST_DATA kann keine von Webformularen geposteten Daten empfangen.

Daten über php://input empfangen

Wenn der bessere Weg, auf die ursprünglichen POST-Daten zuzugreifen, php://input ist. php://input ermöglicht das Lesen der Rohdaten eines POST. Es belastet den Speicher weniger als $HTTP_RAW_POST_DATA und erfordert keine speziellen php.ini-Einstellungen, während php://input nicht mit enctype="multipart/form-data" verwendet werden kann.

Der Benutzer verwendet beispielsweise eine Clientanwendung, um eine Datei auf dem Server zu veröffentlichen. Der Inhalt der Datei ist uns egal, wir möchten die Datei jedoch vollständig auf dem Server speichern. Wir können den folgenden Code verwenden:


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

Der obige Code verwendet file_get_contents('php://input'), um Beitragsdaten zu empfangen, und schreibt dann Die Daten werden in die $original-Datei geschrieben. Tatsächlich kann es als Hochladen einer Datei vom Client auf den Server verstanden werden. Es gibt viele solcher Anwendungen, insbesondere wenn unsere PHP-Entwicklung Produkte mit C, C++ und anderen Anwendungsentwicklungen gemeinsam entwickeln muss .

Verwandte Empfehlungen:

php löst das Problem des Verlusts beim Posten großer Datenmengen

Analyse der Curl-Get-Post-Anfrage in PHP

So behandeln Sie Ausnahmen, die angezeigt werden, wenn ein Beitrag Daten übermittelt

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Beispiels zum Empfangen von Rohdaten im PHP-Beitrag. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!