PHP函数http_build_query使用详解


Posted in PHP onAugust 20, 2014

什么是http_build_query?

使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名
http_build_query有多种用法,不仅可以传入关联数组,同时也可以传入索引数组,甚至多维数组以及对象。

http_build_query怎么使用?

string http_build_query ( array $formdata [, string $numeric_prefix ] )

传入一维关联数组

Array

(

    [name] => lizhong

    [age] => 18

)

name=lizhong&age=18

传入一维索引数组

Array

(

    [0] => lizhong

    [1] => 18

)

0=lizhong&1=18

传入二维数组
Array

(

    [a] => Array

        (

            [a] => a

            [b] => b

        )
    [c] => c

)
a%5Ba%5D=a&a%5Bb%5D=b&c=c

传入对象
class Obj{

    public $a = 'a';

    public $b = 'b';

    private $c = 'c';

    public function func(){

        return; 

    }

}

 

 

$obj = new Obj();

 

$str = http_build_query($obj);

 

echo $str;

输出:
a=a&b=b

因为$c为私有变量,所以访问不到$c成员,于是只有a与b被输出。而对象里的function也不会被打印出来!
PHP 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
Java中final关键字详解
Aug 10 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
PHP函数in_array()使用详解
Aug 20 #PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 #PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 #PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 #PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 #PHP
php实现文件下载代码分享
Aug 19 #PHP
PHP中array_map与array_column之间的关系分析
Aug 19 #PHP
You might like
PHP文本操作类
2006/11/25 PHP
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python编写登陆接口的方法
2017/07/10 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
手写一个python迭代器过程详解
2019/08/27 Python
介绍一下Mysql的存储引擎
2015/02/12 面试题
技校学生个人职业生涯规划范文
2014/03/03 职场文书
学习决心书
2014/03/11 职场文书
公司投资建议书
2014/05/16 职场文书
个人合伙协议书范本
2014/10/14 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis