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 相关文章推荐
用文本作数据处理
Oct 09 PHP
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
php简单的上传类分享
May 15 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 PHP
php array_map()函数实例用法
Mar 03 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
PHP中each与list用法分析
2016/01/08 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
Yii2单元测试用法示例
2016/11/12 PHP
php链式操作的实现方式分析
2019/08/12 PHP
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
酒店销售经理岗位职责
2014/01/31 职场文书
期末学生评语大全
2014/04/24 职场文书
我的理想演讲稿
2014/04/30 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
详解php中流行的rpc框架
2021/05/29 PHP