zoukankan      html  css  js  c++  java
  • 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_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

  • 相关阅读:
    代码性能优化-1
    sql调优-1
    2020.11.08 字符串可以是对象
    2020.11.09 JavaScript运算符
    2020.11.10 JavaScript 比较
    2020.11.11
    2020.11.12 条件语句
    2020.11.13 switch语句
    2020.11.14 循环
    2020.11.15
  • 原文地址:https://www.cnblogs.com/52php/p/5668833.html
Copyright © 2011-2022 走看看