人的头脑太复杂,时间过得久,有时候连自己也被自己骗了,记下来才是最真实的..
2007年2月2日 09:26
我们知道, Php的 parse_str() 函数可以将 URL Query 格式的字符串解析成关联数组, 与Php生成 $_GET 使用的相同的策略. parse_str() 的"反函数"是 http_build_query(), 它将关联数组和对象生成 URL Query 字符串. 不过, 只在Php5之后才被支持. 所以, 我们需要编写自己的 http_build_query()

此代码由Alacner修改,功能与PHP5下的一样。


function my_http_build_query($formdata ,$numeric_prefix=''){
  $str = '';
  foreach($formdata as $key=>$value){
    $prefix=preg_match("/^\W*\d+\W*$/",$key)?$numeric_prefix:'';
    foreach(child_str($value) as $v){
      $str .= "{$prefix}{$key}{$v}&";  
      }
    }
  return substr($str, 0, strlen($str)-1);
}
function child_str($formdata){
  $str = array();
  if(is_array($formdata)){
    foreach($formdata as $key=>$value){  
        foreach(child_str($value) as $v){  
           $str[] = "[$key]$v";  
        }
      }
  }else{  // do url encoding here  
    $formdata = str_replace('&', '%26', '='.urlencode($formdata));
    $str[] = $formdata;
  }
  return $str;
}
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]