php 请求并获取文件流,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://zhibo.fx678.com/index.php?page=htnews&ps=$size&time=$time";

GetWebFileStream($url);

POST调用:

$strURL = "http://reschart.fx678.com/fx678dataWebService/UpdateDataContext.asmx/GetWillAndPublishedDateS";

$urlParams ="willtop=$willSize&top=$size&Clientdate=$clientDate&Key=$md5_key";

$strJSON = GetWebFileStream($strURL,$urlParams,'post');以上案例仅供参考,更多cUrl 知识点请参考php手册!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值