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与SQL注入攻击[二]
Apr 17 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
浅谈PHP的反射API
Feb 26 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
php 使用 __call实现重载功能示例
Nov 18 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
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
js实现时钟定时器
2020/03/26 Javascript
Python扩展内置类型详解
2018/03/26 Python
Python实现ping指定IP的示例
2018/06/04 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python文件路径名的操作方法
2019/10/30 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
python asyncio 协程库的使用
2021/01/21 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
英文求职信结束语大全
2013/10/26 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
数据库连接池
2021/04/06 MySQL
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis