url参数的分解与组合:
需求来源:分页功能中需要动态更改page参数。
实现:2个重要函数
1. 分解
1 parse_str(str, [array]); 2 3 /* 4 str: url字符串, array: 结果 5 例: 6 str : "id=1&page=2" 7 得array: 8 array["id"] = 1, array["page"] = 2
2. 组合
1 $str = http_build_query($array); 2 // 与前者互逆
参考:http://www.jb51.net/article/23787.htm
下面是分页功能:

1 function setUrl($url, $ans, $page, $str){ 2 $ans["page"] = $page; 3 $url = $url.'?'.http_build_query($ans); 4 echo "<a href='$url'>$str</a> "; 5 } 6 function viewPageBar($page, $total){ 7 $url = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']; //URL 地址 8 parse_str($_SERVER["QUERY_STRING"], $ans); //URL 参数转换: 前者:string -> 后者:数组变量 9 $lpage = $page-1>=1? $page-1: $page; 10 $rpage = $page+1<=$total? $page+1: $total; 11 echo "<div>"; 12 setUrl($url, $ans, 1, "首页"); 13 setUrl($url, $ans, $lpage, "前一页"); 14 for($d=-3; $d<=3; $d++){ 15 $tmp = $page+$d; 16 if($tmp>=1 && $tmp<=$total) 17 setUrl($url, $ans, $tmp, "$tmp"); 18 } 19 setUrl($url, $ans, $rpage, "后一页"); 20 setUrl($url, $ans, $total, "尾页"); 21 echo "</div><br/><br/>"; 22 }