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执行sql语句的写法
Mar 10 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
深入解析php中的foreach函数
Aug 31 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
面向对象设计模式的核心法则
2013/11/10 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
简单了解什么是神经网络
2017/12/23 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
春风行动实施方案
2014/03/28 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
党员四风剖析材料
2014/08/27 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
房贷收入证明范本
2015/06/12 职场文书
归途列车观后感
2015/06/17 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
MySQL的安装与配置详细教程
2021/06/26 MySQL
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
Go web入门Go pongo2模板引擎
2022/05/20 Golang