正则取回所有的url GET值包括数组get

61原创,转载请注明出处
用一个正则,取出制定的url下的所有get值,包括二维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$url="http://news.souhu.com/index.php?op=news&task=contentlist&cid=1&id=2&ha[]=12&ha[]=14&ha[]=33&aa[]=1&aa[]=2"; 
$pattern="/(\?|=|&)((?<key>[^\[=]+)|(?<a_key>[^\[]+)\[\])=(?<value>[^&]+)/"; 
preg_match_all($pattern,$url,$matches); 
 
//整理取回的结果 
foreach ($matches['key'] as $k=>$v){ 
    $value=$matches['value'][$k]; 
    if ($v){ 
        $array[$v]=$value; 
    }else{ 
        $array[$matches['a_key'][$k]][]=$value; 
    } 
} 
 
print_r($array); 
?>

发表评论