Heim > php教程 > PHP开发 > Beispielerklärung für den PHP-Eingabestream php://input

Beispielerklärung für den PHP-Eingabestream php://input

高洛峰
Freigeben: 2016-12-23 13:01:19
Original
2219 Leute haben es durchsucht

Was die Einführung in php://input betrifft, so gibt es im offiziellen PHP-Handbuch einen Absatz, der sie 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 heißt das:
"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 nimmt nur den Wert application/x-www an -data- In den beiden Fällen von urlencoded und multipart/form-data füllt PHP die entsprechenden Daten im HTTP-Anforderungspaket in die globale Variable $_POST

2), wenn der Content-Type-Typ ist Wird von PHP nicht erkannt. Die entsprechenden Daten im HTTP-Anforderungspaket werden in die Variable $HTTP_RAW_POST_DATA eingetragen

3). Daten im http-Anforderungspaket. Andernfalls wird die ausgefüllte Länge durch Coentent-Length 4 angegeben data ist konsistent mit $_POST-Daten

5), php://input-Daten sind immer die gleichen wie $HTTP_RAW_POST_DATA, aber php://input ist effizienter als $HTTP_RAW_POST_DATA und muss nicht speziell sein . Setzen Sie php.ini

6), PHP füllt den query_path-Teil des PATH-Felds in die globale Variable $_GET aus. Normalerweise ist der Hauptteil der von der GET-Methode übermittelten HTTP-Anfrage leer >

Um es zusammenzufassen: Wenn Sie die Rückrufdaten von APP oder einigen Schnittstellen mit $_POST nicht erhalten können, versuchen Sie es mit php://input

1 Akzeptieren Sie XML-Daten

2. Ein kleines Programm zum Hochladen von Bildern auf den Server von Ihrem Mobiltelefon

Senden

//发送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);
Nach dem Login kopieren
Empfangen


3: Holen Sie sich den Originaltext des 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; 
}
Nach dem Login kopieren

Die oben genannten sind drei kleine Kastanien für den PHP-Eingabefluss. Der Zweck besteht darin, allen zu helfen, den PHP-Eingabefluss genauer zu verstehen.
/**
 *Recieve image data
 **/
error_reporting(E_ALL);
 
function get_contents() {
 $xmlstr= file_get_contents("php://input");
 $filename=file_put_contentsxmltime().&#39;.png&#39;;
 if(($filename,$str)){
 echo &#39;success&#39;;
 }else{
 echo &#39;failed&#39;;
 } 
  }
get_contents();
Nach dem Login kopieren

Mehr PHP-Eingabefluss PHP. Weitere Artikel zu ://Eingabebeispielen finden Sie auf der chinesischen PHP-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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage