首頁 後端開發 php教程 PHP實用函數:stream_context_create模擬POST/GET

PHP實用函數:stream_context_create模擬POST/GET

Aug 08, 2016 am 09:23 AM
context file http stream

PHP實用函數手冊:stream_context_create()模擬POST/GET

有時候,我們需要在伺服器端模擬 POST/GET 等請求,也就是在 PHP 程式中去實現模擬,改怎麼做呢?或者說,在 PHP 程式裡,給你一個數組,如何將這個數組 POST/GET 到另一個位址?當然,使用 CURL 很容易辦到,那麼如果不使用 CURL 庫,又該怎麼辦呢?其實,在 PHP 裡已經有相關的函數實作了,這個函數就是接下來要講的 stream_context_create()。
直接show you the code,這是最好的方法:
$data = array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'www.lai18.com', 'name'=>'lai18'); $data = http_build_query($data); //$postdata = http_build_query($data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $data //'timeout' => 60 * 60 // 超时时间(单位:s) ) ); $url = "http://www.lai18.net/"; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); echo $result;<br>http://www.lai18.com 的程式碼為:<br><precourier new margin-top:0px margin-bottom:10px line-height:20px word-break:break-all word-wrap:break-word white-space:pre-wrap background-color:rgb>$data = $_POST; echo '<pre class="brush:php;toolbar:false">'; print_r( $data ); echo '';
運行結果為:
Array ( [foo] => bar [baz] => boom [site] => www.lai18.com [name] => lai18 )
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); //创建数据流上下文 $context = stream_context_create($opts); $html =file_get_contents('http://www.lai18.com', false, $context); //fopen输出文件指针处的所有剩余数据: //fpassthru($fp); //fclose()前使用 /www.lai18.com/content/425476.html):1. 以上程式使用了http_build_query() 函數,如果需要了解,可以參考stream),也可用於檔案系統(file system)。對於像 file_get_contents、file_put_contents、readfile直接使用檔案名稱操作而沒有檔案句柄的函數來說更有用。 stream_context_create增加header頭只是一部份功能,還可以定義代理、逾時等。這使得存取web的功能不弱於curl。
4. stream_context_create() 作用:建立並傳回一個文字資料流並套用各種選項,可用於fopen(),file_get_contents()等過程的逾時設定、代理伺服器、請求方式、頭資訊設定的特殊過程。
5. stream_context_create 也能透過增加timeout 選項解決file_get_contents逾時處理:
rrreee
延伸閱讀

此文章所在專題列表如下:


1PHP函數補完:get_magic_quotes_gpc()ofo


3PHP函數補完:array_splice()


4PHP函數補完:isset()


5PHP函式補完:array_multisort()

:preg_match()

8PHP函數補完:header()

9PHP函數補完:getenv()

10PHP函數補完:list()


10PHP函數補完:list()

(1
1513個函數

12PHP函數補完:explode()


13PHP函數補完:mysql_fetch_array()


14PHP函數補完:number_format()


14PHP函數補完:number_format()


15PHP empty()


17PHP函數補完:call_user_func()


18PHP函式補完:parse_url()


19PHPampsCPHport_request_fidable


21PHP函數補完:移除HTML標籤strip_tags()

22PHP函數補完:輸出陣列結構與內容var_dump()

23PHP函數補完:var_export()

23PHP函數補完:var_export()

23PHP函數補完:var_export()

為數字is_numeric()


25PHP函數補完:http_build_query()建構URL字串


26PHP實用函數手冊:stream_context_create()類比POST/GET

26PHP實用函數手冊:stream_context_create()類比POST/GET
隨機元素


28PHP函數補完:session_id()


29PHP函式補完:nl2br()與nl2p()函式


30PHPignfore_sessionproname()方法


32PHP中error_log()函數的使用方法


33PHP實用函數-array_change_key_case()將陣列的鍵轉換大小寫


.34PHPF個函數-functionP.函數-array_intersect()計算兩個或多個數組的交集


36PHP實用函數-array_diff()計算數組間的差集


37PHP-compact()將已知變數轉換成數組

37PHP-compact()將已知變數轉換成數組

37PHP 38PHP實用函數-extract()將陣列轉換成對應鍵值對變數


39PHP實用函數-array_count_values()統計數組中元素出現的次數


40PHP實用函數-getopt()從命令列參數清單中取得選項


41PHP實用函數String函數分類


42使用PHP自帶的filter函數進行資料校驗


以上就介紹了PHP實用函數:stream_context_create模擬POST/GET,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1255
29
C# 教程
1228
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

鴻蒙原生應用隨機詩詞 鴻蒙原生應用隨機詩詞 Feb 19, 2024 pm 01:36 PM

想了解更多關於開源的內容,請造訪:51CTO鴻蒙開發者社群https://ost.51cto.com運行環境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、建立應用程式點擊File- >newFile->CreateProgect。選擇模版:【OpenHarmony】EmptyAbility:填寫項目名,shici,應用包名com.nut.shici,應用儲存位置XXX(不要有中文,特殊字符,空格)。 CompileSDK10,Model:Stage。 Device

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

http請求415錯誤解決方法 http請求415錯誤解決方法 Nov 14, 2023 am 10:49 AM

解決方法:1、檢查請求頭中的Content-Type;2、檢查請求體中的資料格式;3、使用適當的編碼格式;4、使用適當的請求方法;5、檢查伺服器端的支援。

See all articles