您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的區(qū)別有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
具體如下:
$_POST
:通過(guò) HTTP POST 方法傳遞的變量組成的數(shù)組。是自動(dòng)全局變量。$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ù)不可用。
也就是說(shuō)基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。
但是如果post過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,比如 text/xml 或者 soap 等等。
補(bǔ)充說(shuō)明:PHP默認(rèn)識(shí)別的數(shù)據(jù)類型是application/x-www.form-urlencoded標(biāo)準(zhǔn)的數(shù)據(jù)類型。
這是手冊(cè)里寫的:
總是產(chǎn)生變量包含有原始的 POST 數(shù)據(jù)。否則,此變量?jī)H在碰到未識(shí)別 MIME 類型的數(shù)據(jù)時(shí)產(chǎn)生。不過(guò),訪問(wèn)原始 POST 數(shù)據(jù)的更好方法是 php://input。$HTTP_RAW_POST_DATA 對(duì)于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。
問(wèn)題: $HTTP_RAW_POST_DATA == $_POST 嗎?
照手冊(cè)所寫 ,答案應(yīng)該就為否。
假如不一樣的話,他們的區(qū)別是什么呢?
我知道答案了,如下:
The RAW / uninterpreted HTTP POst information can be accessed with:
$GLOBALS['HTTP_RAW_POST_DATA']
This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).
也就是說(shuō),基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,比如 text/xml 或者 soap 等等。
PHP默認(rèn)識(shí)別的數(shù)據(jù)類型是application/x-www.form-urlencoded標(biāo)準(zhǔn)的數(shù)據(jù)類型
用Content-Type=text/xml 類型,提交一個(gè)xml文檔內(nèi)容給了php server,要怎么獲得這個(gè)POST數(shù)據(jù)。
The RAW / uninterpreted HTTP POST information can be accessed with: $GLOBALS['HTTP_RAW_POST_DATA'] This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).
由于PHP默認(rèn)只識(shí)別application/x-www.form-urlencoded標(biāo)準(zhǔn)的數(shù)據(jù)類型,因此,對(duì)型如text/xml的內(nèi)容無(wú)法解析為$_POST數(shù)組,故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA'] 來(lái)接收。
另外還有一項(xiàng) php://input 也可以實(shí)現(xiàn)此這個(gè)功能
php://input 允許讀取 POST 的原始數(shù)據(jù)。和 $HTTP_RAW_POST_DATA 比起來(lái),它給內(nèi)存帶來(lái)的壓力較小,并且不需要任何特殊的 php.ini 設(shè)置。php://input 不能用于 enctype="multipart/form-data"。
應(yīng)用:
a.htm:
<form action="post.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="submit"> </form>
post.php:
<? echo file_get_contents("php://input"); ?>
關(guān)于“PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。