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 无限级数据JSON格式及JS解析
Jul 17 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
thinkphp5修改view到根目录实例方法
Jul 02 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 get_meta_tags()函数
2014/05/12 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
Django REST framework内置路由用法
2019/07/26 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
六道php面试题附答案
2014/06/05 面试题
企业内部培训方案
2014/02/04 职场文书
电气工程自动化求职信
2014/03/14 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
二年级评语大全
2014/04/23 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
法律意见书范文
2015/05/20 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书