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实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
php中取得文件的后缀名?
Feb 20 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
php格式文件打开的四种方法
Feb 24 PHP
docker-compose部署php项目实例详解
Jul 30 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
利用python画出折线图
2018/07/26 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Python笔记之工厂模式
2019/11/20 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
网站美工岗位职责
2014/04/02 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
五年级小学生评语
2014/12/26 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书