PHP獲取POST數(shù)據(jù)的三種方式

$_POST['fieldname']

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

file_get_contents("php://input");

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

$GLOBALS['HTTP_RAW_POST_DATA'];

說明:
總是產(chǎn)生$HTTP_RAW_POST_DATA變量包含有原始的POST數(shù)據(jù)。
此變量?jī)H在碰到未識(shí)別MIME類型的數(shù)據(jù)時(shí)產(chǎn)生。
$HTTP_RAW_POST_DATA對(duì)于enctype="multipart/form-data"表單數(shù)據(jù)不可用。
如果post過來的數(shù)據(jù)不是PHP能夠識(shí)別的,可以用$GLOBALS['HTTP_RAW_POST_DATA']來接收,比如text/xml或者soap等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數(shù)據(jù)。
$_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的數(shù)據(jù)。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí),必須顯式指明Content-Type:application/x-www-form-urlencoded,POST的數(shù)據(jù)才會(huì)存放到$GLOBALS['HTTP_RAW_POST_DATA']中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容