$POST 、$HTTP_RAW_POST_DATA、php://input三者之間的區別
$POST 、$HTTP_RAW_POST_DATA、php://input三者之間的區別
總是產生變數包含有原始的 POST 資料。否則,此變數僅在碰到未識別 MIME 型別的資料時產生。不過,訪問原始 POST 資料的更好方法是 php://input。$HTTP_RAW_POST_DATA 對於 enctype="multipart/form-data" 表單資料不可用。
問題: $HTTP_RAW_POST_DATA == $_POST 嗎? --->答案是為否。
個人理解總結是這麼玩的:
1:$POST我們常用的就不用介紹了吧
2:$GLOBALS['HTTP_RAW_POST_DATA']:
基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的資料不是PHP能夠識別的,你可以用$GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
PHP預設識別的資料型別是application/x-www.form-urlencoded標準的資料型別,用Content-Type=text/xml 型別,提交一個xml文件內容給了php server,要怎麼獲得這個POST資料。
由於PHP預設只識別application/x-www.form-urlencoded標準的資料型別,因此,對型如text/xml的內容無法解析為$_POST陣列,故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA'] 來接收。
3:php://input 也可以實現此這個功能:
php://input 允許讀取 POST 的原始資料。和 $HTTP_RAW_POST_DATA 比起來,它給記憶體帶來的壓力較小,並且不需要任何特殊的 php.ini 設定。php://input 不能用於 enctype="multipart/form-data"。
例子:
leyangjun.html
<form action="leyangjun.php" method="post">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
leyangjun.php:
<?php
echo "<pre>";
print_r($_POST);
$data = file_get_contents('php://input'); //都要解下碼
print_r(urldecode($data));
echo "<br>";
print_r(urldecode($GLOBALS['HTTP_RAW_POST_DATA']));
?>
相關文章
- $_POST,$HTTP_RAW_POST_DATA,php://inputHTTPPHP
- $GLOBALS['HTTP_RAW_POST_DATA']和$_POST的區別HTTP
- **對比$_POST、$GLOBALS['HTTP_RAW_POST_DATA']和file_get_contents('php://input')HTTPPHP
- 深入剖析PHP輸入流php://input(與POST/GET的區別)PHP
- 一文搞懂 $_POST 和 file_get_contents ("PHP://input") 的區別PHP
- undefinedindex:HTTP_RAW_POST_DATAUndefinedIndexHTTP
- HTTPS、SSL、TLS三者之間的聯絡和區別HTTPTLS
- PHP abstract與interface之間的區別PHP
- 面試之 get 和 post 區別面試
- $(":input")和$("input")區別
- raw_input() 與 input()的區別
- http請求之get和post的區別HTTP
- 微信小程式、微店、門店小程式三者之間有什麼區別微信小程式
- input和:input選擇器的區別
- $.ajax 與 $.post 的區別,以及$.post的bug
- php中$_REQUEST、$_POST、$_GET的區別和聯絡小結PHP
- Git、Repo、Gerrit三者的區別Git
- HA DG RAC 三者的區別
- DBA,SYSDBA,SYSOPER三者的區別
- GET 與 POST 的區別
- GET和POST的區別?
- GET和POST的區別
- GET 和 POST 的區別
- POST 和 GET 的區別
- post與get的區別
- get與post的區別?
- jquery 中$("form :input") $("form input") 區別jQueryORM
- cookie、localStorage和sessionStorage 三者之間的區別以及儲存、獲取、刪除等使用方式CookieSession
- 開發人員、程式設計師與電腦科學家三者之間的區別程式設計師
- Token ,Cookie、Session 三者區別CookieSession
- @ApiParam @PathVariable @RequestParam三者區別API
- input和textarea區別
- python中input()與raw_input()的區別Python
- GET與POST區別
- get和post區別
- GET與POST的真正區別
- post、get的區別總結
- 再看GET與POST的區別