美文网首页PHP Small Hacking
玩转 http_build_query

玩转 http_build_query

作者: 邓天明 | 来源:发表于2017-02-12 17:59 被阅读0次

    用 http_build_query 对 url 进行编码:

    http_build_query 可以将一维或多维 数组/对象 进行 url_encode 编码,并返回编码后的字符串。
    它的方便之处在于,可以直接将对象或数组编码,省去了许多体力劳动。
    by the way,无论传入的数据是数组还是 object,解码后都将转换为数组。

    $a = new stdClass();  // 初始化 object a
    $b = array();  // 初始化数组 b
    
    $a->val1 = 'a1';
    $b = [
        'val1' => 'abcd',
        'val2' => 'efgh'
    ];
    $a->cc = $b;  // 将数组 b 插入 object a
    
    $encode = http_build_query($a);  // 编码
    $url = 'http://127.0.0.1/req.php?'. $encode;  // 生成地址
    echo '<a href="'. $url. '">'. $url. '</a>';  // 生成链接
    
    生成的url

    我们在 req.php 中简单的 var_dump $_GET 变量,查看传来的值:


    截图_2017-02-12_17-52-08.png

    http_build_query 的第二个参数只针对数字索引的数组,当我们的数组中存在数字索引时,可以在第二个参数中指定索引的前缀:

    $a = array();  // 初始化数组 b
    $a = [
        'one',  // 数字索引键
        'two',  // 数字索引键
        'aa' => 'bb'
    ];
    
    $encode = http_build_query($a, 'req_');  // 带有前缀的编码
    

    接受的数据为:


    数字索引带有前缀

    相关文章

      网友评论

        本文标题:玩转 http_build_query

        本文链接:https://www.haomeiwen.com/subject/dkmaittx.html