国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁/技術文章
文章詳情頁

PHP 請求上下文相關總結

瀏覽:2日期:2022-09-07 15:47:23

我們首先來了解下什么是上下文。在我們寫文章,寫句子時,都會考慮一個觀點或者內容的前后邏輯,轉承啟合,而在這個觀點前后的內容就可以看成是它的上下文內容。它包含了語境的意味在里面,其實代碼世界中的上下文也是一樣的意思,本身 Context 這個單詞就是環境、背景的意思。

接下來,我們來說說請求上下文又是什么呢?比如說我們要使用PHP來請求一個鏈接地址,通常我們會使用 curl 來進行請求,但是 curl 的配置其實是比較復雜的,所以我們在簡單使用的情況下會使用 file_get_contents() 這種函數來快捷地請求鏈接。不過,可能很多人并不知道或者說沒怎么使用過它的上下文參數。其實,使用了上下文參數之后,file_get_contents() 不僅可以提交 POST 請求,還可以定義各種請求頭內容。這些東西,就是一個請求的上下文,也就是它的執行環境和背景。

首先,我們定義一個服務端,在這里只是輸出 _GET 和 和_POST 里面的內容。同時,我們還打印了 $_SERVER 來看看請求頭是否獲取到了。

print_r($_SERVER);echo ’GET INFO’, PHP_EOL;foreach ($_GET as $k => $v) { echo $k, ’: ’, $v, PHP_EOL;}echo PHP_EOL,PHP_EOL;echo ’POST INFO’, PHP_EOL;foreach ($_POST as $k => $v) { echo $k, ’: ’, $v, PHP_EOL;}

接下來,在我們的測試代碼中,使用 file_get_contents() 來進行 POST 提交。

$postdata = http_build_query( [’var1’ => ’some content’,’var2’ => ’doh’, ]);$opts = [ ’http’ => [’method’ => ’POST’,’header’ => ’Content-type: application/x-www-form-urlencoded’,’content’ => $postdata, ],];$context = stream_context_create($opts);$result = file_get_contents(’http://localhost:8088/?a=1’, false, $context);print_r($result);var_dump($http_response_header);

在這里,我們只是用到了 stream_context_create() ,就能夠輕松地創建一個請求的上下文環境了。stream_context_create() 是創建上下文環境的函數,它接收的參數是一個選項數組,里面用于定義當前請求的相關選項。注意,我們這里其實定義的是 http/https 相關的選項,它還可以定義 ftp 、 socket 等相關的請求協議選項。

在使用 file_get_contents() 函數請求遠程地址后,我們可以在 $http_response_header 變量內獲取到請求返回的響應頭信息。而且這個變量是會定義在當前的局部作用域下,不用擔心全局作用域污染的問題。

非常簡單的方式就可以實現 POST 請求了吧,另外我們還可以使用 fopen() 函數來實現類似的效果,不過獲取 body 和響應應信息時的方式就不同了。

$url = 'http://localhost:8088/?a=1';$opts = [ ’http’ => [’method’ => ’GET’,’max_redirects’ => ’0’,’ignore_errors’ => ’1’, ],];$context = stream_context_create($opts);$stream = fopen($url, ’r’, false, $context);// 返回響應頭var_dump(stream_get_meta_data($stream));// 返回內容var_dump(stream_get_contents($stream));fclose($stream);

在這段代碼中,我們使用 stream_get_meta_data() 函數來獲得響應頭,使用 stream_get_contents() 來獲得響應的內容(body)。這樣其實就真的和 curl 的效果差不多了,而且最主要的是,當前這種寫法更簡單方便。

從上面的代碼中我們可以看出,這種上下文相關的函數都是 Stream 類型的函數,也就是流函數。它們是專門用來處理各種數據的,包括但不限于文件中的、網絡上的、壓縮文件以及其他一些操作的數據。在將來的學習中,我們還會接觸到其它的內容。今天的學習,其實是流的網絡數據處理中的一小部分內容,大家先消化消化吧!

測試代碼: github.com/zhangyue050…

以上就是PHP 請求上下文相關總結的詳細內容,更多關于PHP 請求上下文的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
主站蜘蛛池模板: 日本视频免费在线播放 | 免费v片在线观看 | 国产精品欧美一区二区三区 | 国产成人一区二区三区免费观看 | 国产精品免费一级在线观看 | 七七国产福利在线二区 | 全部孕妇毛片 | 免费观看a黄一级视频 | 精品欧美一区二区精品久久 | 新版天堂中文资源官网 | 久99久精品视频免费观看v | a级午夜毛片免费一区二区 a级性生活视频 | 97在线播放视频 | 日韩欧美中文字幕在线观看 | 久久精品免费视频观看 | 欧美成一级 | 91精品欧美一区二区综合在线 | 欧美极品欧美精品欧美视频 | 97超级碰碰碰碰在线视频 | 欧美日韩国产亚洲一区二区 | 成年人看的免费视频 | 手机在线播放av | 国产一毛片 | 亚洲综合小视频 | 久久国产成人 | 欧美一级淫片免费播放口 | 成人毛片国产a | 久久亚洲国产视频 | 亚洲精品国产经典一区二区 | 国产精品在线观看 | 亚洲天堂视频在线观看 | 99久久综合狠狠综合久久一区 | 午夜综合网 | 欧美一级毛片在线看视频 | 国产一级毛片网站 | 美女一级片视频 | 精品伊人久久久久网站 | 欧美日比视频 | 亚洲欧美一区二区三区在线播放 | 视频一区在线免费观看 | 欧美精品一级 |