1. 问答
  2. 问答详情

PHP中,把url查询字符串转换为$_GET数组

$_SERVER['QUERY_STRING']的字符串类似:

a=1&b=2&c=3&vardate=2012-11-12

希望能转换成$_GET数组,内容类似于:
$_GET['a']=1;
$_GET['b']=2;
$_GET['c']=3;
$_GET['vardate']='2012-11-12';`
一般是把原始字符串根据&切分后,再根据=切分。

list(,$tmp) = explode("?", $_SERVER['QUERY_STRING']);
$a = explode("&",$tmp);
foreach($a as $v) {    
    $b = explode("=", $v);    
    $_GET[$b[0]] = $b[1];            
}
var_dump($_GET);

不考虑数值类型
一个比较优雅的代码


1个回答

0

采纳

parse_str — 将字符串解析成多个变量,将url参数字符串转成数组。(PHP 4, PHP 5, PHP 7)

$str = "first=value&arr[]=php&arr[]=java";

// 推荐用法
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // php
echo $output['arr'][1]; // java

void parse_str ( string $encoded_string [, array &$result ] )

如果 encoded_string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。

撰写答案

验证码
点击刷新