PHP 獲取網路介面檔案流
阿新 • • 發佈:2019-02-15
獲取網路接口裡面的檔案流
php開發呼叫各種介面在所難免,有時需要傳遞很多引數。
在傳遞引數過程中 '&' 有時會被 解析成 ‘&’導致請求失敗
經過查詢資料和比較,發現php提供了多種方法:cUrl、fopen、file_get_contents等,就操作性、可靠性和高效來說 cURL還是不錯的。
參考案例如下:
/** * 獲取網路接口裡面的檔案流 **/ public function GetWebFileStream($strUrl,$urlParams = '',$type = 'get'){ $stream = ""; if(!isset($strUrl) || empty($strUrl)) return ""; //初始化 $ch = curl_init(); if($type === 'post'){ curl_setopt_array($ch,[ CURLOPT_URL => $strUrl, CURLOPT_RETURNTRANSFER => 1, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_POSTFIELDS => $urlParams ]); } else{ curl_setopt_array($ch,[ CURLOPT_URL => $strUrl, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 0 ]); } //輸出結果 $stream = curl_exec($ch); //判斷curl請求是否超時 if(curl_errno($ch)){ $stream = file_get_contents($strUrl); } //關閉 curl_close($ch); return $stream; }
GET呼叫:
$url = "http://zhibo.fx678.com/index.php?page=htnews&ps=$size&time=$time";
GetWebFileStream($url);
POST呼叫:
以上案例僅供參考,更多cUrl 知識點請參考php手冊!$strURL = "http://reschart.fx678.com/fx678dataWebService/UpdateDataContext.asmx/GetWillAndPublishedDateS"; $urlParams ="willtop=$willSize&top=$size&Clientdate=$clientDate&Key=$md5_key"; $strJSON = GetWebFileStream($strURL,$urlParams,'post');