For the introduction to php://input, the official PHP manual document has a paragraph that clearly outlines it.
“php://input allows you to read raw POST data. It is a less memory intensive alternative to$HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/ form-data".
Translated, it is like this:
"php://input can read unprocessed POST data. Compared with $HTTP_RAW_POST_DATA, it puts less pressure on memory and does not require special php.ini settings. php://input cannot be used for enctype=multipart/form-data"
The summary is as follows:
1), Coentent-Type only applies when the value is application/x-www-data-urlencoded and multipart/form-data In this case, PHP will fill in the corresponding data in the http request packet into the global variable $_POST
2). When the Content-Type type is not recognized by PHP, it will fill in the corresponding data in the http request packet into the variable. $HTTP_RAW_POST_DATA
3), only when the Coentent-Type is multipart/form-data, PHP will not fill in the corresponding data in the http request packet into php://input, otherwise the length will be filled in in other cases. Specified by Coentent-Length.
4), php://input data is consistent with $_POST data only when Content-Type is application/x-www-data-urlencoded.
5), php://. The input data is always the same as $HTTP_RAW_POST_DATA, but php://input is more efficient than $HTTP_RAW_POST_DATA and does not require special settings for php.ini
6). PHP will fill the query_path part of the PATH field into the global variable $_GET . Normally, the body of the http request submitted by the GET method is empty. To sum up, when you cannot get the callback data from the APP or some interfaces using $_POST, try using php://input. Try
1. Accept xml data
//發(fā)送xml數(shù)據(jù) $xml = '<xml>xmldata</xml>';//要發(fā)送的xml $url = 'http://localhost/test/getXML.php';//接收XML地址 $header = 'Content-type: text/xml';//定義content-type為xml $ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_URL, $url);//設(shè)置鏈接 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//設(shè)置是否返回信息 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//設(shè)置HTTP頭 curl_setopt($ch, CURLOPT_POST, 1);//設(shè)置為POST方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//POST數(shù)據(jù) $response = curl_exec($ch);//接收返回信息 if(curl_errno($ch)){//出錯(cuò)則顯示錯(cuò)誤信息 print curl_error($ch); } curl_close($ch); //關(guān)閉curl鏈接 echo $response;//顯示返回信息 // php用file_get_contents("php://input")或者$HTTP_RAW_POST_DATA可以接收xml數(shù)據(jù) $xmldata = file_get_contents("php://input"); $data = (array)simplexml_load_string($xmldata);2. Mini program for uploading pictures to the server via mobile phone
Send
//@file phpinput_post.php $data=file_get_contents('btn.png'); $http_entity_body = $data; $http_entity_type = 'application/x-www-form-urlencoded'; $http_entity_length = strlen($http_entity_body); $host = '127.0.0.1'; $port = 80; $path = '/image.php'; $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; }
Receive
/** *Recieve image data **/ error_reporting(E_ALL); function get_contents() { $xmlstr= file_get_contents("php://input"); $filename=file_put_contentsxmltime().'.png'; if(($filename,$str)){ echo 'success'; }else{ echo 'failed'; } } get_contents();
3: Get the original text of the HTTP request
/** * 獲取HTTP請(qǐng)求原文 * @return string */ function get_http_raw(){ $raw = ''; // (1) 請(qǐng)求行 $raw .= $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . ' ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n"; // (2) 請(qǐng)求Headers foreach ($_SERVER as $key => $value) { if (substr($key , 0 , 5) === 'HTTP_') { $key = substr($key , 5); $key = str_replace('_' , '-' , $key); $raw .= $key . ': ' . $value . "\r\n"; } } // (3) 空行 $raw .= "\r\n"; // (4) 請(qǐng)求Body $raw .= file_get_contents('php://input'); return $raw; }The above are three small programs for PHP input flow Chestnut, the purpose is to help everyone understand the PHP input stream more accurately. I hope you will gain something. For more relevant articles on the PHP input stream php://input, please pay attention to the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)