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分页代码实例
Oct 24 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
php blowfish加密解密算法
Jul 02 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
laravel 数据验证规则详解
Oct 23 PHP
PHP架构及原理知识点详解
Dec 22 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无敌近乎加密方式!
2010/07/17 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
详解Vue源码学习之双向绑定
2019/04/10 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python threading多线程编程实例
2014/09/18 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python numpy数组中的复制知识解析
2020/02/03 Python
flask开启多线程的具体方法
2020/08/02 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
为数据库创建索引都需要注意些什么
2012/07/17 面试题
求职自荐书范文
2013/12/04 职场文书
预备党员公开承诺书
2014/05/28 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
教育教学工作反思
2016/02/24 职场文书
七年级作文之游记
2019/12/11 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
Python常遇到的错误和异常
2021/11/02 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers