PHP函数http_build_query使用详解

什么是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也不会被打印出来!

(0)

相关推荐

  • php中解析带中文字符的url函数分享

    很多时候,在书写网页应用程序时候,会遇到中文和其他字符冲突的问题,例如有的url链接中包含中文字符,那么在使用wget/curl/file_get_contents等等获取信息时候会直接撞上一个大大的"404",会很无语. 这里写了一个小函数来解决这个问题,只是限于在path中进行解析而已,涉及到的相关函数使用大家可以查看手册就行. 复制代码 代码如下: function urlConvert($url){           $pathArr = array();          

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

    本文实例讲述了PHP使用http_build_query()构造URL字符串的方法.分享给大家供大家参考,具体如下: 简单来说,http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理. 还是引用一下官方的解释: http_build_query http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( array formdata [, str

  • php获取当前页面完整URL地址

    使用PHP编写程序的时候,我们常常想要获取当前页面的URL.下面提供一个用于获取当前页面URL的函数以及使用方法: 示例一: <?php // 说明:获取完整URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER[&q

  • PHP实现通过URL提取根域名

    PHP根据URL提取根域名,个人工作中用到,由于网络上很多代码都不能得到正确结果就自己写了一个,欢迎大家使用并提出其中的bug. <?php #使用示例 echo getBaseDomain('http://blog.jp.goo.ne.jp/index.php')->domain;echo "\n"; echo getBaseDomain('http://51.ca/index.php')->domain;echo "\n"; echo getB

  • php进行支付宝开发中return_url和notify_url的区别分析

    本文实例分析了php进行支付宝开发中return_url和notify_url的区别.分享给大家供大家参考.具体分析如下: 在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍介绍. 问题描述: 我在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态. 支付宝r

  • thinkphp四种url访问方式详解

    本文实例分析了thinkphp的四种url访问方式.分享给大家供大家参考.具体分析如下: 一.什么是MVC thinkphp的MVC模式非常灵活,即使只有三个中和一个也可以运行. M -Model 编写model类 对数据进行操作 V -View  编写html文件,页面呈现 C -Controller 编写类文件(UserAction.class.php) 二.ThinkPHP的MVC特点    (简单了解) 三.ThinkPHP的MVC对应的目录  (简单了解) M 项目目录/应用目录/Li

  • php使用正则表达式获取图片url的方法

    本文实例讲述了php使用正则表达式获取图片url的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <?php header("Content-type:text/html;charset=utf-8"); $str = '<p><img src="images/11111111.jpg" alt="美女" /></p>'; $pattern = "/[img|IMG].*

  • php检测url是否存在的方法

    本文实例讲述了php检测url是否存在的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: function url_exists($url) {     $hdrs = @get_headers($url);     return is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false; } 希望本文所述对大家的php程序设计有所帮助.

  • php中使用url传递数组的方法

    本文实例讲述了php中使用url传递数组的方法.分享给大家供大家参考.具体分析如下: 数组传递这么写: 复制代码 代码如下: echo"<a href=2.php?info=".base64_encode(serialize($information)).">info</a>" ; 数组接收: 复制代码 代码如下: $info = unserialize(base64_decode($_GET['info'])); 访问的话: 复制代码 代码

  • PHP获取当前完整URL地址的函数

    这里主要是给大家分享一个非常实用的PHP函数,代码很简单,就不多废话了,小伙伴们需要的话直接拿去用. 复制代码 代码如下: //php获取当前访问的完整url地址 function get_current_url(){     $current_url='http://';     if(isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on'){         $current_url='https://';     }     if($_SE

  • php动态添加url查询参数的方法

    本文实例讲述了php动态添加url查询参数的方法.分享给大家供大家参考.具体分析如下: 这段代码可以动态为url添加key-value查询参数,如果参数已经存在则会用新的进行覆盖 function add_querystring_var($url, $key, $value) { $url=preg_replace('/(.*)(?|&)'.$key.'=[^&]+?(&)(.*)/i','$1$2$4',$url.'&'); $url=substr($url,0,-1);

  • php中http_build_query 的一个问题

    当我们使用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_s

随机推荐