Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie php://input in PHP

So verwenden Sie php://input in PHP

藏色散人
藏色散人Original
2021-12-21 09:54:284183Durchsuche

php://input kann unverarbeitete POST-Daten lesen. Die Verwendungsmethode ist wie „$xmldata = file_get_contents(“php://input“);“, die zum Empfangen von XML-Daten verwendet wird.

So verwenden Sie php://input in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, Dell G3-Computer.

Wie verwende ich die php://-Eingabe in PHP?

Für die Einführung in php://input gibt es im offiziellen PHP-Handbuch einen Absatz, der es klar umreißt.
„php://input ermöglicht das Lesen von POST-Rohdaten. Es ist eine weniger speicherintensive Alternative zu $HTTP_RAW_POST_DATA und erfordert keine speziellen php.ini-Anweisungen. php://input ist mit enctype= nicht verfügbar.“ multipart/form-data".

Übersetzt ist es so:
"php://input kann unverarbeitete POST-Daten lesen. Im Vergleich zu $HTTP_RAW_POST_DATA belastet es den Speicher weniger und erfordert keine speziellen php.ini-Einstellungen. php://input can used for enctype=multipart/form-data“
Die Zusammenfassung lautet wie folgt:

1), Coentent-Type gilt nur, wenn der Wert application/x-www-data-urlencoded und multipart ist /form-data In diesem Fall füllt PHP die entsprechenden Daten im HTTP-Anforderungspaket in die globale Variable $_POST

2). Wenn der Content-Type-Typ von PHP nicht erkannt werden kann, werden die entsprechenden Daten eingefügt im http-Anforderungspaket in die Variable $HTTP_RAW_POST_DATA

3), nur wenn der Inhaltstyp multipart/form-data ist, füllt PHP die entsprechenden Daten im http-Anforderungspaket nicht in php://input ein Die Länge wird in anderen Fällen durch Coentent-Length angegeben

4), php://input data stimmt nur mit den $_POST-Daten überein, wenn Content-Type application/x-www-data-urlencoded ist

5), php://. Die Eingabedaten sind immer die gleichen wie $HTTP_RAW_POST_DATA, aber php://input ist effizienter als $HTTP_RAW_POST_DATA und erfordert keine speziellen Einstellungen für php.ini

6). Der query_path-Teil des PATH-Felds in die globale Variable $_GET. Normalerweise ist der Hauptteil der von der GET-Methode übermittelten HTTP-Anfrage leer. Zusammenfassend lässt sich sagen, dass Sie die Rückrufdaten nicht von der APP oder einigen Schnittstellen über $_POST abrufen können Versuchen Sie es mit php://input

1

//发送xml数据
$xml = &#39;<xml>xmldata</xml>&#39;;//要发送的xml 
$url = &#39;http://localhost/test/getXML.php&#39;;//接收XML地址 
$header = &#39;Content-type: text/xml&#39;;//定义content-type为xml 
$ch = curl_init(); //初始化curl 
curl_setopt($ch, CURLOPT_URL, $url);//设置链接 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置HTTP头 
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST数据 
$response = curl_exec($ch);//接收返回信息 
if(curl_errno($ch)){//出错则显示错误信息 
print curl_error($ch); 
} 
curl_close($ch); //关闭curl链接 
echo $response;//显示返回信息 


// php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml数据
$xmldata = file_get_contents("php://input"); 
$data = (array)simplexml_load_string($xmldata);

3: Holen Sie sich den Originaltext der HTTP-Anfrage

//@file phpinput_post.php 
$data=file_get_contents(&#39;btn.png&#39;); 
$http_entity_body = $data; 
$http_entity_type = &#39;application/x-www-form-urlencoded&#39;; 
$http_entity_length = strlen($http_entity_body); 
$host = &#39;127.0.0.1&#39;; 
$port = 80; 
$path = &#39;/image.php&#39;; 
$fp = fsockopen($host, $port, $error_no, $error_desc, 30); 
if ($fp){ 
fputs($fp, "POST {$path} HTTP/1.1\r\n"); 
fputs($fp, "Host: {$host}\r\n"); 
fputs($fp, "Content-Type: {$http_entity_type}\r\n"); 
fputs($fp, "Content-Length: {$http_entity_length}\r\n"); 
fputs($fp, "Connection: close\r\n\r\n"); 
fputs($fp, $http_entity_body . "\r\n\r\n"); 

while (!feof($fp)) { 
 $d .= fgets($fp, 4096); 
} 
fclose($fp); 
echo $d; 
}

Der Zweck besteht darin, allen zu helfen, den PHP-Eingabefluss genauer zu verstehen Empfehlen Sie das Lernen: „
PHP-Video-Tutorial.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie php://input in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Was bedeutet br in PHP?Nächster Artikel:Was bedeutet br in PHP?