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 09 PHP
php调用mysql数据 dbclass类
May 07 PHP
php学习之 循环结构实现代码
Jun 09 PHP
sql注入与转义的php函数代码
Jun 17 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
smarty的section嵌套循环用法示例
May 28 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP实现链式操作的三种方法详解
Nov 16 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
python自带的http模块详解
2016/11/06 Python
Python运行DLL文件的方法
2020/01/17 Python
pygame实现飞机大战
2020/03/11 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
行政助理岗位职责
2015/02/10 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
欠条格式范本
2015/07/03 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
MySQL学习必备条件查询数据
2022/03/25 MySQL