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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
php 无限分类的树类代码
Dec 03 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP判断是否有Get参数的方法
May 05 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php动态添加url查询参数的方法
Apr 14 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 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
MySQL相关说明
2007/01/15 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
python获取mp3文件信息的方法
2015/06/15 Python
python查看微信好友是否删除自己
2016/12/19 Python
用Python实现数据的透视表的方法
2018/11/16 Python
Python数据可视化之画图
2019/01/15 Python
python验证身份证信息实例代码
2019/05/06 Python
python中dict()的高级用法实现
2019/11/13 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
jupyter notebook 重装教程
2020/04/16 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
单位人事专员介绍信
2014/01/11 职场文书
出国留学介绍信
2014/01/13 职场文书
安全演讲稿大全
2014/05/09 职场文书