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类
Nov 27 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
PHP在线书签系统分享
Jan 04 PHP
php实现的一段简单概率相关代码
May 30 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
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
利用python绘制正态分布曲线
2021/01/04 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
软件测试笔试题
2012/10/25 面试题
do you have any Best Practice for testing
2016/06/04 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
计划生育汇报材料
2014/12/26 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
考研经验交流会策划书
2015/11/02 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Pytorch可视化的几种实现方法
2021/06/10 Python
Python实现8种常用抽样方法
2021/06/27 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python