返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
PHP基础当前位置:首页 > HTML教程 > PHP基础 > 正文

php中curl模拟post提交多维数组

发布时间:2019-11-01 11:39:52   来源:   点击:
由于curl传递多维参数的时候,二维数组的内容会被直接传递成array,造成无法接受,所以需要对二维码数组做一些处理
参考:
  1. //通过curl模拟post的请求; 
  2. function SendDataByCurl($url,$data=array()){ 
  3.     //对空格进行转义 
  4.     $url = str_replace(' ','+',$url); 
  5.     $ch = curl_init(); 
  6.     //设置选项,包括URL 
  7.     curl_setopt($ch, CURLOPT_URL, "$url"); 
  8.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  9.     curl_setopt($ch, CURLOPT_HEADER, 0); 
  10.     curl_setopt($ch,CURLOPT_TIMEOUT,3);  //定义超时3秒钟   
  11.      // POST数据 
  12.     curl_setopt($ch, CURLOPT_POST, 1); 
  13.     // 把post的变量加上 
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    //所需传的数组用http_bulid_query()函数处理一下,就ok了 
  15.      
  16.     //执行并获取url地址的内容 
  17.     $output = curl_exec($ch); 
  18.     $errorCode = curl_errno($ch); 
  19.     //释放curl句柄 
  20.     curl_close($ch); 
  21.     if(0 !== $errorCode) { 
  22.         return false
  23.     } 
  24.     return $output; 
  25.  
http_build_query方法解释:
http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。

写法格式:http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

打个比方:$data = array("name"=>"callback" , "value"=>"test");

$rescult = http_build_query($data);

我们输出下$rescutl可以得到:

name=callback&value=test

这个有什么用呢,这是模拟http请求的,把得到的数据data通过函数URL-encode,一般是用在回调。



版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站客服
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814