一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP獲取HTTP body內容的方法

PHP獲取HTTP body內容的方法

2019-07-08 12:41nomandia PHP教程

今天小編就為大家分享一篇PHP獲取HTTP body內容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

有時候我們獲取數據時需要根據Header中的格式來解析,比如上傳一個json而不是一個文本。這里用到了 php輸入|輸出流 的概念。

PHP 提供了一些雜項輸入/輸出(IO)流,允許訪問 PHP 的輸入輸出流、標準輸入輸出和錯誤描述符, 內存中、磁盤備份的臨時文件流以及可以操作其他讀取寫入文件資源的過濾器。

本文涉及到了了,php://input,詳盡內容請參閱官網:點擊查看官網

php://input 是個可以訪問請求的原始數據的只讀流。 POST 請求的情況下,最好使用 php://input 來代替 $HTTP_RAW_POST_DATA,因為它不依賴于特定的 php.ini 指令。 而且,這樣的情況下 $HTTP_RAW_POST_DATA 默認沒有填充, 比激活 always_populate_raw_post_data 潛在需要更少的內存。 enctype="multipart/form-data" 的時候 php://input 是無效的。

模擬代碼

// server.php
switch($_SERVER['CONTENT_TYPE']){
 case 'application/json':
 // 這里通過輸入端來獲取數據
 $body = file_get_contents('php://input');
 echo '這是一個json:', $body;
 break;
 // ...
}
// client_web.php, 注意這里使用了 axios
// ...
service = axios.create({
 baseURL: 'mydomain',
 validateStatus:function(status){
 if(500 >= status) alert('server fails');
 }
});

// 發一個請求
service.post(url, {
 // ...
 headers: {'Content-Type':'application/json'},
 data:'{"code":100}'
 // ...
});

// 全局設置也沒問題
service.interceptors.request.use(function(config){
 // 這里設置請求頭
 config.headers['Content-Type'] = 'application/json';
 return config;
}, function(err){});

引申閱讀

以下為官方文檔小抄

PHP 輸入|輸出流分為: php://stdin, php://stdout 和 php://stderr

php://stdin、php://stdout 和 php://stderr 允許直接訪問 PHP 進程相應的輸入或者輸出流。 數據流引用了復制的文件描述符,所以如果你打開 php://stdin 并在之后關了它, 僅是關閉了復制品,真正被引用的 STDIN 并不受影響。 注意 PHP 在這方面的行為有很多 BUG 直到 PHP 5.2.1。 推薦你簡單使用常量 STDIN、 STDOUT 和 STDERR 來代替手工打開這些封裝器。

其中 php://stdin 是只讀的, php://stdout 和 php://stderr 是只寫的。

php://output

php://output 是一個只寫的數據流, 允許你以 print 和 echo 一樣的方式 寫入到輸出緩沖區。

php://fd

php://fd 允許直接訪問指定的文件描述符。 例如 php://fd/3 引用了文件描述符 3。

php://memory 和 php://temp

php://memory 和 php://temp 是一個類似文件 包裝器的數據流,允許讀寫臨時數據。 兩者的唯一區別是 php://memory 總是把數據儲存在內存中, 而 php://temp 會在內存量達到預定義的限制后(默認是 2MB)存入臨時文件中。 臨時文件位置的決定和 sys_get_temp_dir() 的方式一致。

php://temp 的內存限制可通過添加 /maxmemory:NN 來控制,NN 是以字節為單位、保留在內存的最大數據量,超過則使用臨時文件。

php://filter

php://filter 是一種元封裝器, 設計用于數據流打開時的篩選過濾應用。 這對于一體式(all-in-one)的文件函數非常有用,類似 readfile()、 file() 和 file_get_contents(), 在數據流內容讀取之前沒有機會應用其他過濾器。

php://filter 目標使用以下的參數作為它路徑的一部分。 復合過濾鏈能夠在一個路徑上指定。詳細使用這些參數可以參考具體范例。

以上這篇PHP獲取HTTP body內容的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我要看免费毛片 | 日本不卡不码高清免费观看 | 9l桃色 | 欧美日韩国产精品综合 | 日本老妇人乱视频 | 国产精品激情综合久久 | 四虎综合九九色九九综合色 | 欧美亚洲免费 | 亚洲va欧美va天堂v国产综合 | 天天乐影院 | 超强台风免费观看完整版视频 | 国产二区视频在线观看 | 含羞草传媒网站免费进入欢迎 | 国内精品福利丝袜视频_速 国内精品91久久久久 | 成人精品一区久久久久 | 欧美日韩一区二区三区在线观看 | 无人区1免费完整观看 | 亚洲波多野结衣日韩在线 | 欧美a级v片不卡在线观看 | 国产欧美va欧美va香蕉在线观 | 日本韩国推理片免费观看网站 | 全肉np巨肉一女np高h双龙 | 乌克兰成人性色生活片 | a级毛片毛片免费观看永久 a级黄色片免费 | 99在线观看视频 | kk4444在线影视播放 | 午夜福到在线4国产 | japan在线观看| 四虎国产欧美成人影院 | 出a级黑粗大硬长爽猛视频 吃胸膜奶视频456 | 日韩欧美在线看 | 动态图啪啪120秒免费看 | 超级碰碰青草免费视频92 | 91爱啪 | 亚洲精品国产精品麻豆99 | 免费特黄一级欧美大片在线看 | 深夜激情网 | 小小水蜜桃3视频在线观看 小鸟酱喷水 | 福利国产片 | acg火影忍者熟密姬纲手h | 日韩精品一区二区三区老鸭窝 |