首頁  >  文章  >  後端開發  >  PHP實用函數:stream_context_create模擬POST/GET

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

WBOY
WBOY原創
2016-08-08 09:23:06865瀏覽

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