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

首頁 > 編程 > PHP > 正文

PHP使用stream_context_create()模擬POST-GET請求的方法

2020-03-22 18:02:57
字體:
來源:轉載
供稿:網友
本文實例講述了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'= 'localhost', 'name'= 'nowa magic'); $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://localhost/test2.php";$context = stream_context_create($options);$result = file_get_contents($url, false, $context);echo $result;http://localhost/test2.php 的代碼為:$data = $_POST;echo ' pre print_r( $data );echo ' /pre 運行結果為:Array [foo] = bar [baz] = boom [site] = localhost [name] = nowa magic一些要點講解:1. 以上程序用到了 http_build_query() 函數,如果需要了解,可以參看前面一篇《PHP使用http_build_query()構造URL字符串的方法》。2. stream_context_create() 是用來創建打開文件的上下文件選項的,比如用POST訪問,使用代理,發送header等。就是 創建一個流,再舉一個例子吧:$context = stream_context_create(array( 'http' = array( 'method' = 'POST', 'header' = sprintf("Authorization: Basic %s/r/n", base64_encode($username.':'.$password)). "Content-type: application/x-www-form-urlencoded/r/n", 'content' = http_build_query(array('status' = $message)), 'timeout' = 5, $ret = file_get_contents('http://twitter.com/statuses/update.xml', false, $context); 3. stream_context_create創建的上下文選項即可用于流(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超時處理:$opts = array( 'http'= array( 'method'= "GET", 'timeout'= 60,//創建數據流上下文$context = stream_context_create($opts);$html =file_get_contents('http://localhost', false, $context);//fopen輸出文件指針處的所有剩余數據://fpassthru($fp); //fclose()前使用更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》希望本文所述對大家PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普兰店市| 西丰县| 耿马| 栾城县| 沙湾县| 辽宁省| 赤峰市| 潜山县| 灌南县| 汕头市| 南溪县| 内江市| 南陵县| 于田县| 怀集县| 沧源| 郯城县| 三原县| 文安县| 麻城市| 浦北县| 田林县| 茶陵县| 会泽县| 上蔡县| 横峰县| 抚州市| 屯留县| 玉龙| 岳池县| 徐州市| 定州市| 革吉县| 姜堰市| 昌吉市| 潜山县| 齐河县| 灵丘县| 绥棱县| 乌拉特前旗| 昌都县|