成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

說說$POST 、$HTTP_RAW_POST_DATA、php://input三者之間的區(qū)別

desdik / 1946人閱讀

摘要:因為在無法識別的時候,就會把數(shù)據(jù)填入到中。需要設置中的值為才會生效當與可以取到值時為空不能用于中已經(jīng)移除了這個全局變量,用替代可通過輸入流以文件讀取方式取得未經(jīng)處理的原始數(shù)據(jù),允許讀取的原始數(shù)據(jù)。和比起來,它給內(nèi)存帶來的壓力較小。

$POST

$_POST是我們最常用的獲取POST數(shù)據(jù)的方式,它是以關聯(lián)數(shù)組方式組織提交的數(shù)據(jù),并對此進行編碼處理,如urldecode,甚至編碼轉(zhuǎn)換,識別的數(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就果斷移除了這個不好用的東東。。。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21105.html

相關文章

  • PHP其他知識集合

    摘要:引用傳遞除了對象和資源,其他類型的引用傳遞都是指向同樣的數(shù)據(jù),各自互相影響。與基本用法一致,但區(qū)別如下沒有返回值,有返回值可以輸出多個參數(shù),只可以輸出一個參數(shù)是函數(shù),可以打印復合類型,例如等,主要用于數(shù)組打印是函數(shù),把文字格式化以后輸出。 命令行執(zhí)行PHP代碼三種方式 1、/usr/local/php/bin/php 后面跟上某個PHP文件 2、/usr/local/php/bi...

    李濤 評論0 收藏0
  • php://output和php://stdout區(qū)別

    摘要:同理可得到和的區(qū)別是進程的標準輸出流,是返回的結果數(shù)據(jù)流。在瀏覽器端,進程的輸出流被忽略,只有結果數(shù)據(jù)流被發(fā)送到服務器。同時,和調(diào)用的信息都作為執(zhí)行結果發(fā)往結果輸出流,所以都正常顯示。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/php-output... PHP包含了以php://開頭的一系列輸出輸出流,如php://stdin, php://stdout等。今天查看...

    binaryTree 評論0 收藏0
  • php開發(fā)過程中不怎么常見問題

    日常開發(fā)中碰到就記一下, 如果有朋友愿意分享的 bug 可以在評論中討論啊 url 當中的參數(shù)有 ×tamp=1234567890這樣的字段會被轉(zhuǎn)義成xtamp=1234567890 這個不僅存在于頁面解析當中,當使用 curl 請求時拼接的參數(shù)有這種格式的也會發(fā)生轉(zhuǎn)義解決方法有兩個: 把 timestamp 這個參數(shù)放在 urlQuery 的最前面, ?timestamp=1234...

    April 評論0 收藏0
  • PHP發(fā)送和接收JSON請求

    摘要:發(fā)送接受是個可以訪問請求的原始數(shù)據(jù)的只讀流。在之前打開的數(shù)據(jù)流只能讀取一次數(shù)據(jù)流不支持操作。不過,依賴于的實現(xiàn),請求體數(shù)據(jù)被保存的時候,它可以打開另一個數(shù)據(jù)流并重新讀取。 現(xiàn)在微服務中,很多API由于需要傳遞的參數(shù)較多所以要求用包含所有參數(shù)的JSON數(shù)據(jù)作為POST請求的請求體來替代FormData傳遞參數(shù)的方式,在參數(shù)量較多時POST JSON要比POST FormData便于開發(fā)和...

    PiscesYE 評論0 收藏0
  • PHP回顧之IO

    摘要:命令行時返回值為,標準輸入輸出均指向終端可用進程號查看。會在腳本執(zhí)行完畢后關閉三個流,無需用戶手動關閉。與遠程網(wǎng)址交互是一個請求和響應的過程,其中細節(jié)可參考本人之前的文章回顧之請求和回顧之響應,也可參考協(xié)議的權威文檔。 轉(zhuǎn)載請注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎 web請求 cookie web響應 ses...

    happen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<