php中http_build_query 的一个问题


Posted in PHP onMarch 25, 2012

当我们使用CURL来post数据的时候,需要设置post的数据
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);

假如这里的$data是

$data = array( 
'name'=>'scofield', 
'time'=>'2012-2-3' 
)

接下来,需要先将$data变成字符串
$post_data = http_build_query($data);
而采用 http_build_query 转换后再
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);

看起来没有什么问题。但在实际操作中,$post_data 并没有被post过去。于是,自己写了个转换的方法后就OK了。

function getStr($array,$Separator='&') { 
if (empty($array)) 
return; 
if (!is_array($array)) { 
return $array; 
} 
$returnStr = ''; 
foreach ($array as $key => $val) { 
$temp = ''; 
if (is_array($val)) { 
for ($i = 0; $i < count($val); $i++) { 
$returnStr .= $key . '[' . $i . ']' . '=' . $val[$i] . $Separator; 
} 
} else { 
$returnStr.= $key . '=' . $val . $Separator; 
} 
} 
$returnStr = substr(trim($returnStr), 0, -1); 
return $returnStr; 
}

感谢 黄斌-huangbin 童鞋的测试 http_build_query($data,"","&"); 即可,无需自己写方法解析了。

http_build_query 远程攻击者可以利用漏洞获得敏感内存信息。请大家谨慎使用

PHP 相关文章推荐
php 分页函数multi() discuz
Jun 21 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
php银联网页支付实现方法
Mar 04 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
PHP加密技术的简单实现
Sep 04 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 PHP
php正则表达匹配中文问题分析小结
Mar 25 #PHP
二招解决php乱码问题
Mar 25 #PHP
php引用地址改变变量值的问题
Mar 23 #PHP
奇怪的PHP引用效率问题分析
Mar 23 #PHP
php地址引用(php地址引用的效率问题)
Mar 23 #PHP
PHP遍历数组的几种方法
Mar 22 #PHP
php遍历数组的方法分享
Mar 22 #PHP
You might like
JAVA/JSP学习系列之六
2006/10/09 PHP
php中常用的预定义变量小结
2012/05/09 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python实现彩色图转换成灰度图
2019/01/15 Python
python验证身份证信息实例代码
2019/05/06 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
Django中template for如何使用方法
2021/01/31 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
厂长助理岗位职责
2013/12/27 职场文书
班班通项目实施方案
2014/02/25 职场文书
初中生物教学反思
2016/02/20 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python