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 nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
PHP parse_url 一个好用的函数
Oct 03 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
为你总结一些php系统类函数
Oct 21 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 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
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
处理Python中的URLError异常的方法
2015/04/30 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
详解爬虫被封的问题
2019/04/23 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
合伙购房协议样本
2014/10/06 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL