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+javascript模拟Matrix画面
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
微信支付开发发货通知实例
Jul 12 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
PHP文件与目录操作示例
Dec 24 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php判断访问IP的方法
2015/06/19 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
php的debug相关函数用法示例
2016/07/11 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python中psutil的介绍与用法
2019/05/02 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
python集合能干吗
2020/07/19 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
python中的插入排序的简单用法
2021/01/19 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
毕业班联欢会主持词
2014/03/27 职场文书
元旦寄语大全
2014/04/10 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
班主任经验交流材料
2014/12/16 职场文书
欠款证明
2015/06/24 职场文书
女儿满月酒致辞
2015/07/29 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
《大禹治水》教学反思
2016/02/22 职场文书