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初学者头疼问题总结
Oct 09 PHP
用PHP开发GUI
Oct 09 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
百度地图API使用方法详解
Aug 25 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php版微信自定义回复功能示例
Dec 05 PHP
php正确输出json数据的实例讲解
Aug 21 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 根据IP地址控制访问的代码
2010/04/22 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
python写xml文件的操作实例
2014/10/05 Python
python开发中range()函数用法实例分析
2015/11/12 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Python如何执行系统命令
2020/09/23 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
墨西哥购物网站:Elektra
2020/01/21 全球购物
委托证明的格式
2014/01/10 职场文书
社区庆八一活动方案
2014/02/02 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
工地材料员岗位职责
2015/04/11 职场文书
公司车辆管理制度
2015/08/04 职场文书
Elasticsearch 数据类型及管理
2022/04/19 Python