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实现图象锐化代码
Jun 14 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php在线代理转向代码
May 05 PHP
PHP常用的文件操作函数经典收藏
Apr 02 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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校验ISBN码的函数代码
2011/01/17 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
php实现购物车功能(下)
2016/01/05 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
关于js类的定义
2011/06/28 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python实现图片拼接的代码
2018/07/02 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
软件测试面试题
2014/01/05 面试题
幼儿园保教管理制度
2014/02/03 职场文书
五年级音乐教学反思
2014/02/06 职场文书
《日月潭》教学反思
2014/02/28 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
民事申诉状范本
2015/05/20 职场文书
护士心得体会范文
2016/01/25 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP