php curl post 时出现的问题解决


Posted in PHP onJanuary 30, 2014

在 a.php 中以 POST 方式向 b.php 提交数据,但是 b.php 下就是无法接收到数据,而 CURL 操作又显示成功,非常诡异。原来,“传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。
",而和我一样对 CURL 不太熟悉的人在编写程序时,代码往往是下面的样子:

$data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $comefrom ); 
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); 
curl_setopt($ch, CURLOPT_URL, 'http://example.com/b.php'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_exec($ch);

也就是将所要提交的数据以数组的形式通过 POST 发送,而这样就会导致 CURL 使用“错误"的编码“multipart/form-data",其效果相当于我们直接以“<form method="post" action="b.php" enctype="multipart/form-data">"这样的表单来完成操作,大家可以试试,这时的“b.php"是无论如何也无法通过 $_POST 来接收数据的。

所以,正确的做法应该是将上述范例代码中的 $data 由数组变为经 urlencode() 编码后的

PHP 相关文章推荐
PHP+APACHE实现用户论证的方法
Oct 09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
PHP查询快递信息的方法
Mar 07 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
php排序算法实例分析
Oct 17 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 PHP
laravel-admin的图片删除实例
Sep 30 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 #PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 #PHP
php内核解析:PHP中的哈希表
Jan 30 #PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 #PHP
PHP内核探索:变量概述
Jan 30 #PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 #PHP
PHP $_FILES中error返回值详解
Jan 30 #PHP
You might like
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
Python简单日志处理类分享
2015/02/14 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
社区端午节活动方案
2014/01/28 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
酒会邀请函
2015/01/31 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
java版 联机五子棋游戏
2022/05/04 Java/Android