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入门基础之php代码写法
Dec 30 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP获取毫秒级时间戳的方法
Apr 15 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 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 unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
javascript闭包的高级使用方法实例
2013/07/04 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
easyui validatebox验证
2016/04/29 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
详解Python中DOM方法的动态性
2015/04/11 Python
python 性能提升的几种方法
2016/07/15 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python实现机器学习之多元线性回归
2018/09/06 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
python基于property()函数定义属性
2020/01/22 Python
python默认参数调用方法解析
2020/02/09 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
物流司机岗位职责
2013/12/28 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
圆明园观后感
2015/06/03 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
详解python的异常捕获
2022/03/03 Python