http_build_query — 生成 URL-encode 之后的请求字符串
http_build_query ( mixed $query_data , string $numeric_prefix = ? , string $arg_separator = ? , int $enc_type = PHP_QUERY_RFC1738 ) : string

参数解释:

query_data:可以是数组或包含属性的对象,数组支持多维数组,对象只有公有权限的才会加入结果
numeric_prefix:此参数值将会作为数组中的基础数字下标元素的前缀。
arg_separator:除非指定并使用了这个参数,否则会用 arg_separator.output 来分隔参数。
enc_type:如果 enc_type 是 PHP_QUERY_RFC1738,空格会被编码成加号(+)。如果 enc_type 是 PHP_QUERY_RFC3986,空格会被百分号编码(%20)。默认编码为(+)。

用法举例:

一: 将数组组成请求字符串

$data = array('foo'=>'bar','baz'=>'boom','cow'=>'milk','php'=>'hypertext processor');echo http_build_query($data);
// 结果如下, 空格被编码为+号
foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

二:指定参数numeric_prefix的值, 为基础数字下标元素添加前缀

$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data, 'myvar_');
//结果如下, 数组下标的元素添加上了前缀“myvar_”
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

三:将多维数组拼接为请求字符串

$data = array('user'=>array('name'=>'Bob Smith','age'=>47,'sex'=>'M','dob'=>'5/12/1956'),'pastimes'=>array('golf', 'opera', 'poker', 'rap'),'children'=>array('bobby'=>array('age'=>12,'sex'=>'M'),'sally'=>array('age'=>8,'sex'=>'F')),'CEO');
echo http_build_query($data,"myvar_");
//结果如下,注意只有下标为CEO的基础下标元素添加了前缀,其余数字索引没有如user下标内的数组
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&myvar_0=CEO

四:将对象内的成员拼接为请求字符串

class parentClass {public    $pub      = 'publicParent';protected $prot     = 'protectedParent';private   $priv     = 'privateParent';public    $pub_bar  = Null;protected $prot_bar = Null;private   $priv_bar = Null;public function __construct(){$this->pub_bar  = new childClass();$this->prot_bar = new childClass();$this->priv_bar = new childClass();}
}class childClass {public    $pub  = 'publicChild';protected $prot = 'protectedChild';private   $priv = 'privateChild';
}$parent = new parentClass();echo http_build_query($parent);
//结果如下,注意只有公有权限的才能加入结果
pub=publicParent&pub_bar%5Bpub%5D=publicChild

PHP http_build_query用法详解相关推荐

  1. python argv 详解_Python3 sys.argv[ ]用法详解

    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个"外部"很关键,因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可 ...

  2. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  3. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  4. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  5. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  6. php theme_path,PHP_Yii2主题(Theme)用法详解,本文实例讲述了Yii2主题(Theme) - phpStudy

    Yii2主题(Theme)用法详解 本文实例讲述了Yii2主题(Theme)用法.分享给大家供大家参考,具体如下: 首先看看主要的配置方式: 'components' => [ 'view' = ...

  7. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  8. Ext.Net学习笔记22:Ext.Net Tree 用法详解

    上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...

  9. WinDbg用法详解

    WinDbg用法详解 对WinDbg的方方面面作了详细的讲解. 转载于:https://blog.51cto.com/laokaddk/125111

最新文章

  1. 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc
  2. mysql union join_MySQL 超新手入门(5) JOIN 与 UNION 查询
  3. uva 10391 Compound Words
  4. python 面向对象(类)--学习笔记
  5. php dhcp,ip如何设置dhcp
  6. 【传智播客】Javaweb程序设计任务教程 黑马程序员 课后答案【合集】
  7. java freememory 单位_Runtime类中的freeMemory,totalMemory,maxMemory区别
  8. HSRP(Hot Standby Router Protocol)热备份路由协议
  9. UNIX域套接字编程和socketpair 函数
  10. mybatis 取查询值_MyBatis面试题集合,90%会遇到这些问题
  11. mysql_safe不存在_mysql5.7.9安装后找不到mysqld_safe和mysqld_multi程序
  12. linux libz-dev,Linux-based Development
  13. 使用 Hapi 开发 RESTful APIs
  14. PX30 android8.1 时区更改
  15. 引导过程(修复MBR故障和GRUB鼓掌及破解密码)
  16. js获取传统节假日_js判断节假日的代码分享
  17. 用c语言编写字母循环,C语言输入循环字母
  18. 为什么JS的语法很乱
  19. MySQL:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  20. C++ 类的简单使用

热门文章

  1. play商店 小米_Google Play 商店
  2. VMware Workstation Pro 15.0.2 官方版+激活密钥
  3. Ubuntu安装升级glibc
  4. matlab基础知识:行向量产生、访问及绘图
  5. eclipse建立Flex项目之Blazeds篇1(测试成功完整版)
  6. Flex Builder 3代码格式化方法
  7. Django项目实践(商城):十一、收货地址
  8. 机器学习必会技能之微积分【一文到底】
  9. Java(JCo3)与SAP系统相互调用
  10. 使用cubemx工具的STM32对外部flash(W25Q64)的简单编程