99久久国产露脸精品麻豆,欧美日韩精品小说,亚洲免费在线美女视频,国产三级中文字幕,91极品国产情侣高潮对白,国产亚洲一区二区三区不卡片,欧美jizz精品欧美性,久久国产精品久久国产片

$POST 、$GLOBALS['HTTP_RAW_POST_DATA']、php://input三者之間的區(qū)別

袁志蒙 4231次瀏覽

摘要:$_POST是我們最常用的獲取POST數(shù)據(jù)的方式,它是以關聯(lián)數(shù)組方式組織提交的數(shù)據(jù),并對此進行編碼處理,如urldecode,甚至編碼轉換,識別的數(shù)據(jù)類型是PHP默認識別的數(shù)據(jù)類型 application/x-www.form-urlencoded...

   $POST

$_POST是我們最常用的獲取POST數(shù)據(jù)的方式,它是以關聯(lián)數(shù)組方式組織提交的數(shù)據(jù),并對此進行編碼處理,如urldecode,甚至編碼轉換,識別的數(shù)據(jù)類型是PHP默認識別的數(shù)據(jù)類型 application/x-www.form-urlencoded

  • 無法解析如text/xml,application/json等非 application/x-www.form-urlencoded 數(shù)據(jù)類型的內(nèi)容

   HTTP_RAW_POST_DATA

前面說過PHP默認識別的數(shù)據(jù)類型是application/x-www.form-urlencoded,用Content-Type=application/json 類型,提交的POST數(shù)據(jù)這時候 $_POST 就無法獲取到了,但是使用 $GLOBALS['HTTP_RAW_POST_DATA'] 可以獲取到。因為在PHP無法識別Content-Type的時候,就會把 POST 數(shù)據(jù)填入到 $HTTP_RAW_POST_DATA 中。

  • 需要設置 php.ini 中的 always_populate_raw_post_data 值為 On 才會生效

  • 當$_POST 與 php://input可以取到值時 $HTTP_RAW_POST_DATA 為空

  • 不能用于 enctype="multipart/form-data"

  • PHP7中已經(jīng)移除了這個全局變量,用 php://input 替代

   php://input

php://input 可通過輸入流以文件讀取方式取得未經(jīng)處理的POST原始數(shù)據(jù),允許讀取 POST 的原始數(shù)據(jù)。和 $HTTP_RAW_POST_DATA 比起來,它給內(nèi)存帶來的壓力較小。

  • 不需要任何特殊的 php.ini 設置

  • 不能用于 enctype="multipart/form-data"

   小結

上面了介紹了一下我們目前使用PHP獲取POST數(shù)據(jù)的三種方式,當我們以后使用PHP來獲取POST數(shù)據(jù)的時候用$_POST或者php://input就好了。雖然HTTP_RAW_POST_DATA可以達到和php://input一樣的目的,但是會給內(nèi)存帶來較大的壓力,官方也注意到了這個問題,所以在PHP7就果斷移除了這個不好用的東東。。。


隨機內(nèi)容

表情

共0條評論
  • 這篇文章還沒有收到評論,趕緊來搶沙發(fā)吧~