PHP 获取网络接口文件流
Posted 追夢秋陽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 获取网络接口文件流相关的知识,希望对你有一定的参考价值。
获取网络接口里面的文件流
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://xxx.xxx.xxx/xxx.php?page=htnews&ps=$size&time=$time";
GetWebFileStream($url);
POST调用:
$strURL = "http://xxx.com/xxx/xxx.asmx/xxx";
$urlParams ="xxx=$xxx&top=$xxx&xxx=$xxx&xxx=$xxx";
$strJSON = GetWebFileStream($strURL,$urlParams,'post');
以上案例仅供参考,更多cUrl 知识点请参考php手册!
以上是关于PHP 获取网络接口文件流的主要内容,如果未能解决你的问题,请参考以下文章
php 怎么用输出流的形式给http接口传入json,并获取返回值?