http_build_query

(PHP 5)

http_build_query -- 生成 url-encoded 之后的请求字符串描述

string http_build_query ( array formdata [, string numeric_prefix] )

使用给出的关联(或下标)数组生成一个 url-encoded 请求字符串。

参数 formdata 可以是数组或包含属性的对象。一个 formdata 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。如果在基础数组中使用了数字下标同时给出了 numeric_prefix 参数,此参数值将会作为基础数组中的数字下标元素的前缀。这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。

Example 1:

  1. <?php
  2. $data = array('foo'=>'bar',
  3. 'baz'=>'boom',
  4. 'cow'=>'milk',
  5. 'php'=>'hypertext processor');
  6. echo http_build_query($data);
  7. /* 输出:
  8. foo=bar&baz=boom&cow=milk&php=hypertext+processor
  9. */
  10. ?>

Example 2:http_build_query() 使用数字下标的元素

  1. <?php
  2. $data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
  3. echo http_build_query($data);
  4. /* 输出:
  5. 0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
  6. */
  7. echo http_build_query($data, 'myvar_');
  8. /* 输出:
  9. myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
  10. */
  11. ?>

Example 3:http_build_query() 使用复杂的数组

  1. <?php
  2. $data = array('user'=>array('name'=>'Bob Smith',
  3. 'age'=>47,
  4. 'sex'=>'M',
  5. 'dob'=>'5/12/1956'),
  6. 'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
  7. 'children'=>array('bobby'=>array('age'=>12,
  8. 'sex'=>'M'),
  9. 'sally'=>array('age'=>8,
  10. 'sex'=>'F')),
  11. 'CEO');
  12. echo http_build_query($data, 'flags_');
  13. /* 输出:(为了可读性对其进行了折行)
  14. user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
  15. pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
  16. children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
  17. children[sally][sex]=F&flags_0=CEO
  18. 注意:只有基础数组中的数字下标元素“CEO”才获取了前缀,其它数字下标元素(如
  19. pastimes 下的元素)则不需要为了合法的变量名而加上前缀。
  20. */
  21. ?>

Example 4:http_build_query() 使用对象

  1. <?php
  2. class myClass {
  3. var $foo;
  4. var $baz;
  5. function myClass() {
  6. $this->foo = 'bar';
  7. $this->baz = 'boom';
  8. }
  9. }
  10. $data = new myClass();
  11. echo http_build_query($data);
  12. /* 输出:
  13. foo=bar&baz=boom
  14. */
  15. ?>

原文链接:http://www.cnblogs.com/zhja/archive/2012/11/10/2764174.html

PHP http_build_query()方法的更多相关文章

  1. Http Header里的Content-Type

    之前一直分不清楚post请求里Content-Type方式,如application/x-www-form-urlencoded.multipart/form-data.本文会介绍Content-Ty ...

  2. PHP模拟发送POST请求之四、加强file_get_contents()发送POST请求

    使用了笨重fsockopen()方法后,我们开始在PHP函数库里寻找更简单的方式来进行POST请求,这时,我们发现了PHP的文件函数也具有与远程URL交互的功能. 最简单的是fopen()和fread ...

  3. PHP 中和 HTTP 相关的函数及使用

    ① get_headers 方法:取得服务器响应一个 HTTP 请求所发送的所有标头 例如: <?php $httpinfo = get_headers('http://www.baidu.co ...

  4. 微信公众号请求code时报redirect_uri 参数错误

    (1) 检查微信公众号中"接口权限"--"网页授权获取用户基本信息"中的网页授权域名.域名不带http(s) (2)如果在拼接跳转到微信授权接口的URL时,使用 ...

  5. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  6. php魔术方法 http_build_query使用

    最近在做一个项目使用到 http_build_query 这个魔术方法很好用,它可以将一个数组转换成这样的格式: 比如 $_arr = array('action'=>'show','page' ...

  7. PHP使用http_build_query()构造URL字符串的方法

    http_build_query http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( array formda ...

  8. http_build_query()函数使用方法

    http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串. 写法格式:http_build_query ( mixed $query ...

  9. PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)

    <?php //parse_str与http_build_query的使用 //使用parse_str将url字符串转变为key=>value的数组 $str = "tn=mon ...

随机推荐

  1. ASP.NET Web API实践系列02,在MVC4下的一个实例, 包含EF Code First,依赖注入, Bootstrap等

    本篇体验在MVC4下,实现一个对Book信息的管理,包括增删查等,用到了EF Code First, 使用Unity进行依赖注入,前端使用Bootstrap美化.先上最终效果: →创建一个MVC4项目 ...

  2. 安装oracle 11g环境变量ORACLE_HOME的一个问题 转

    http://blog.itpub.net/26129555/viewspace-1243467/报错内容: OUI-10137:An Oracle Home with name ORACLE_HOM ...

  3. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境

    CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...

  4. WordPress主题开发:get_term_by和get_term_link

    学习目的: 某一个分类的名称.别名.和id都可以到后台自己去找,但这样找比较麻烦还容易看错,wordpress提供了下面两个函数get_term_by和get_term_link,只要提供别名.名称或 ...

  5. 阿里云上部署kafka--遇到的坑

    阿里云防火墙关闭,并且配置规则.不然会导致访问不到服务. 问题一: Caused by: java.net.UnknownHostException: iZuf68tztea6l5ccdz7wemZ: ...

  6. 低版本系统兼容的ActionBar(三)自定义Item视图+进度条的实现+下拉导航+透明ActionBar

           一.自定义MenuItem的视图 custom_view.xml (就是一个单选按钮) <?xml version="1.0" encoding="u ...

  7. Jenkins 快速搭建

    Jenkins 介绍 Jenkins 作为持续集成的重要工具,在DevOps整个工具链中有重要的地位.Jenkins 一般作为独立的应用运行在Java Servlet容器中如Jetty,也可以运行在其 ...

  8. Asp.Net Core 静态文件目录操作

    一.默认静态文件处理 Asp.Net Core的默认处理方式,将所有的静态文件都放在wwwroot文件夹中 1.默认配置,在启动文件Startup中 public void Configure(IAp ...

  9. golang的日志系统log和glog

    go语言有一个标准库,log,提供了最基本的日志功能,但是没有什么高级的功能,如果需要高级的特性,可以选择glog或log4go. 参考:https://cloud.tencent.com/devel ...

  10. AsyncHttpClient的连接池使用逻辑

    AsyncHttpClient的连接池结构很简单, NettyConnectionsPool内部重要的几个变量如下 // 连接池, 通过 host 区分不同的池 private final Concu ...