从url中分离query数据
-by fallseir
$req_url=$_SERVER["REQUEST_URI"]; // 获取当前url
list($req_path,$req_queries)=split_url($req_url); // 分离出地址和参数
$value=$req_queries["arg"]; //获取指定参数的值
$req_queries["page"]=2;//设置参数的值
unset($req_queries["arg"]);//清除指定参数
$new_url=join_url($req_path,$req_queries); // 重新组合成完整的地址
function split_url($url){
$req_path=$url;
$req_queries=array();
if(strpos($url,"?")!==false){
list($req_path,$req_query)=split("\?",$url,2);
foreach(split("&",$req_query) as $query){
list($q,$v)=split("=",$query,2);
if(array_key_exists($q,$req_queries)){
if(is_array($req_queries[$q])){
$req_queries[$q][]=$v;
}else{
$req_queries[$q]=array($req_queries[$q],$v);
}
}else{
$req_queries[$q]=$v;
}
}
}
return array($req_path,$req_queries);
}
function join_url($path,$queries=false){
$url=$path;
if($queries&&is_array($queries)&&(count($queries)>0)){
$qs=array();
foreach($queries as $k=>$v){
if(is_array($v)){
array_unique($v);
foreach($v as $t){
$qs[]=sprintf("%s=%s",$k,$t);
}
}else{
$qs[]=sprintf("%s=%s",$k,$v);
}
}
if(count($qs)>0){
$url.="?".join("&",$qs);
}
}
return $url;
}

