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学习之function的用法
Jul 14 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP错误处理函数
Apr 03 PHP
php版微信自定义回复功能示例
Dec 05 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
Yii2框架加载css和js文件的方法分析
May 25 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP中的Memcache详解
2014/04/05 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
js时间控件只显示年月
2017/01/08 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
js中对象和面向对象与Json介绍
2019/01/21 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python操作csv文件实例详解
2017/07/31 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python+pyqt5编写md5生成器
2019/03/18 Python
浅析NumPy 切片和索引
2020/09/02 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
司机辞职报告范文
2014/01/20 职场文书
保护动物倡议书
2014/04/15 职场文书
股东合作协议书
2014/09/12 职场文书
毕业感言怎么写
2015/07/31 职场文书
职工食堂管理制度
2015/08/06 职场文书
Go语言安装并操作redis的go-redis库
2022/04/14 Golang