php獲取post內容方式


PHP默認識別的數據類型是application/x-www.form-urlencoded標准的數據類型。

 

php獲取post參數的幾種方式

1、$_POST['paramName'] 只能接收Content-Type: application/x-www-form-urlencoded提交的數據...php會將http請求body相應數據會 填入到數組$_POST,填入到$_POST數組中的數據是進行urldecode()解析的結果。(其實,除了該Content-Type,還有 multipart/form-data表示數據是表單數據)

 

2、file_get_contents("php://input") 適用大多數類型的Content-type

php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的 php.ini 設置。php://input 不能用於 enctype="multipart/form-data"。

 

3、$GLOBALS['HTTP_RAW_POST_DATA']; 總是產生 $HTTP_RAW_POST_DATA  變量包含有原始的 POST 數據。此變量僅在碰到未識別 MIME 類型的數據時產生。$HTTP_RAW_POST_DATA  對於 enctype="multipart/form-data"  表單數據不可用。

如果post過來的數據不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變 量$http_raw_post_data。

 

 

1,Coentent-Type僅在取值為application/x-www-data-urlencoded和multipart/form- data兩種情況下,PHP才會將http請求數據包中相應的數據填入全局變量$_POST
2,PHP不能識別的Content-Type類型的時候,會將http請求包中相應的數據填入變量$HTTP_RAW_POST_DATA
3, 只有Coentent-Type不為multipart/form-data的時候,PHP不會將http請求數據包中的相應數據填入php: //input,否則其它情況都會。填入的長度,由Coentent-Length指定。
4,只有Content-Type為application/x-www-data-urlencoded時,php://input數據才 跟$_POST數據相一致。
5,php://input數據總是跟$HTTP_RAW_POST_DATA相同,但是php://input 比$HTTP_RAW_POST_DATA更湊效,且不需要特殊設置php.ini
6,PHP會將PATH字段的query_path部分,填入全局變量$_GET。通常情況下,GET方法提交的http請求,body為空。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM