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 文件编程综合案例-文件上传的实现
Jul 03 PHP
PHP获取MAC地址的具体实例
Dec 13 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
10款实用的PHP开源工具
Oct 23 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 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
第三章 php操作符与控制结构代码
2011/12/30 PHP
php去掉文件前几行的方法
2015/07/29 PHP
php实现word转html的方法
2016/01/22 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
python 远程统计文件代码分享
2015/05/14 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
一年级数学教学反思
2014/02/01 职场文书
2013年军训通讯稿
2014/02/05 职场文书
家长会学生演讲稿
2014/04/26 职场文书
卖房协议书样本
2014/10/30 职场文书
紫日观后感
2015/06/05 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
MySQL 字符集 character
2022/05/04 MySQL