php curl模拟post请求和提交多维数组的示例代码


Posted in PHP onNovember 19, 2015

下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下:

<?php
$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址
// 参数数组
$data = array (
 'name' => 'tanteng'
// 'password' => 'password'
);
$ch = curl_init ();
// print_r($ch);
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
print_r($return);

2,远程服务器:

<?php
if(isset($_POST['name'])){
 if(!empty($_POST['name'])){
 echo '您好,',$_POST['name'].'!';
 }
}

下面给大家介绍php中curl模拟post提交多维数组。

今天需要用curl模拟post提交参数,请求同事提供的一个接口;但是传递的参数中,有一个参数的值为数组,用普通的curl post代码提交,会报错误

PHP Notice:  Array to string conversion in /test/functions.php on line 30
Notice: Array to string conversion in /test/functions.php on line 30

代码如下:

<?php
        $param = array(
                'uid' => 123, 
                'uids' => array(12,455), 
                'msgType' => 'WITH',  
                'nick' => 'aaa',   
               );
        $url = "http://cx.com/t.php";
        //通过curl的post方式发送接口请求
        SendDataByCurl($url,$param);
       //通过curl模拟post的请求;
function SendDataByCurl($url,$data=array()){
  //对空格进行转义
  $url = str_replace(' ','+',$url);
  $ch = curl_init();
  //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, "$url");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟 
   // POST数据
  curl_setopt($ch, CURLOPT_POST, 1);
  // 把post的变量加上
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  //执行并获取url地址的内容
  $output = curl_exec($ch);
  //释放curl句柄
  curl_close($ch);
  return $output;
}

经过修改上面代码,可以完成提交数组的功能,而不会报php notice,代码如下:

//通过curl模拟post的请求;
function SendDataByCurl($url,$data=array()){
  //对空格进行转义
  $url = str_replace(' ','+',$url);
  $ch = curl_init();
  //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, "$url");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟 
   // POST数据
  curl_setopt($ch, CURLOPT_POST, 1);
  // 把post的变量加上
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  //所需传的数组用http_bulid_query()函数处理一下,就ok了
  //执行并获取url地址的内容
  $output = curl_exec($ch);
  $errorCode = curl_errno($ch);
  //释放curl句柄
  curl_close($ch);
  if(0 !== $errorCode) {
    return false;
  }
  return $output;
}
PHP 相关文章推荐
PHP Ajax实现页面无刷新发表评论
Jan 02 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php生成二维码图片方法汇总
Dec 17 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
php依赖注入知识点详解
Sep 23 PHP
PHP7 其他修改
Mar 09 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 #PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 #PHP
WordPress网站性能优化指南
Nov 18 #PHP
php+ajax实现无刷新分页
Nov 18 #PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 #PHP
php生成唯一数字id的方法汇总
Nov 18 #PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 #PHP
You might like
PHP异常处理浅析
2015/05/12 PHP
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
司仪主持词两篇
2014/03/22 职场文书
个性婚礼策划方案
2014/05/17 职场文书
公司外出活动方案
2014/08/14 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
小学教研工作总结2015
2015/05/13 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Pytorch 如何实现常用正则化
2021/05/27 Python