PHP獲取POST數據的三種方式

$_POST['fieldname']

說明:
只能接收Content-Type:application/x-www-form-urlencoded提交的數據
解釋:
也就是表單POST過來的數據

file_get_contents("php://input");

說明:
允許讀取POST的原始數據。
和$HTTP_RAW_POST_DATA比起來,它給內存帶來的壓力較小,并且不需要任何特殊的php.ini設置。
php://input不能用于enctype="multipart/form-data"。
解釋:
對于未指定Content-Type的POST數據,則可以使用file_get_content("php://input");來獲取原始數據。
事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進制文件流也可以。
所以用方法二是最保險的方法。

$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等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數據。
$_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的數據。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數據取決于centent-Type的設置,即POST數據時,必須顯式指明Content-Type:application/x-www-form-urlencoded,POST的數據才會存放到$GLOBALS['HTTP_RAW_POST_DATA']中。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容