国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP獲取HTTP body內(nèi)容的方法

2024-05-05 00:06:08
字體:
供稿:網(wǎng)友

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

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

本文涉及到了了,php://input,詳盡內(nèi)容請參閱官網(wǎng):點擊查看官網(wǎng)

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

模擬代碼

// server.phpswitch($_SERVER['CONTENT_TYPE']){ case 'application/json': // 這里通過輸入端來獲取數(shù)據(jù) $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'); }});// 發(fā)一個請求service.post(url, { // ... headers: {'Content-Type':'application/json'}, data:'{"code":100}' // ...});// 全局設(shè)置也沒問題service.interceptors.request.use(function(config){ // 這里設(shè)置請求頭 config.headers['Content-Type'] = 'application/json'; return config;}, function(err){});

引申閱讀

以下為官方文檔小抄

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

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

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

php://output

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

php://fd

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

php://memory 和 php://temp

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

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

php://filter

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

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

以上這篇PHP獲取HTTP body內(nèi)容的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 湖南省| 佳木斯市| 曲松县| 五家渠市| 山阳县| 安新县| 枞阳县| 襄垣县| 大连市| 沧州市| 北辰区| 嘉义市| 名山县| 德州市| 富裕县| 普安县| 樟树市| 彰化县| 临湘市| 正蓝旗| 株洲市| 临武县| 巩留县| 东乌珠穆沁旗| 个旧市| 元氏县| 莒南县| 虞城县| 柳江县| 天长市| 阿克| 潼南县| 安仁县| 云林县| 鹿邑县| 大邑县| 花垣县| 诸暨市| 齐齐哈尔市| 曲沃县| 娱乐|