码迷,mamicode.com
首页 > Web开发 > 详细

http_build_query 的一个问题

时间:2016-07-14 07:05:15      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

当我们使用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_setopt($c, CURLOPT_POSTFIELDS, $post_data);

看起来没有什么问题。但在实际操作中,$post_data 并没有被post过去。于是,自己写了个转换的方法后就OK了。

function getStr($array,$Separator=‘&‘) {
        if (empty($array))
            return;
        if (!is_array($array)) {
            return $array;
        }
        $returnStr = ‘‘;
        foreach ($array as $key => $val) {
            $temp = ‘‘;
            if (is_array($val)) {
                for ($i = 0; $i < count($val); $i++) {
                    $returnStr .= $key . ‘[‘ . $i . ‘]‘ . ‘=‘ . $val[$i] . $Separator;
                }
            } else {
                $returnStr.= $key . ‘=‘ . $val . $Separator;
            }
        }
        $returnStr = substr(trim($returnStr), 0, -1);
        return $returnStr;
    }

感谢 黄斌-huangbin 童鞋的测试 http_build_query($data,"","&"); 即可,无需自己写方法解析了。

 

 

 

 

延伸阅读:

URL处理几个关键的函数parse_url、parse_str与http_build_query

http_build_query 的一个问题

标签:

原文地址:http://www.cnblogs.com/52php/p/5668833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!