每次编写列表性质的页面,几乎都要写上一段分页的程序。最近小阳终于决心一劳永逸——自定义一个分页函数,并保存在“pageft.php”文件里。要用到分页的地方,就直接包含“pageft.php”文件,并调用这个函数就行了。小阳在编写这个函数时,尽量注意了程序的可移植性和易用性,下面就是小阳编写的函数:
-
-
- if(!function_exists(pageft)){
-
-
-
-
-
- function pageft($totle,$displaypg=20,$url=''){
-
-
-
-
-
- global $page,$firstcount,$pagenav,$_SERVER;
-
- $GLOBALS["displaypg"]=$displaypg;
- if(!$page) $page=1;
-
- if(!$url){ $url=$_SERVER["REQUEST_URI"];}
-
- $parse_url=parse_url($url);
- $url_query=$parse_url["query"];
- if($url_query){
-
-
- $url_query=ereg_replace("(^|&)page=$page","",$url_query);
-
- $url=str_replace($parse_url["query"],$url_query,$url);
-
-
- if($url_query) $url.="&page"; else $url.="page";
- }else {
- $url.="?page";
- }
- 页码计算:
- $lastpg=ceil($totle/$displaypg);
- $page=min($lastpg,$page);
- $prepg=$page-1;
- $nextpg=($page==$lastpg ? 0 : $page+1);
- $firstcount=($page-1)*$displaypg;
-
- $pagenav="显示第 ".($totle?($firstcount+1):0)."-".min($firstcount+$displaypg,$totle)." 条记录,共 $totle 条记录
";
-
- if($lastpg<=1) return false;
- $pagenav.=" 首页 ";
- if($prepg) $pagenav.=" 前页 "; else $pagenav.=" 前页 ";
- if($nextpg) $pagenav.=" 后页 "; else $pagenav.=" 后页 ";
- $pagenav.=" 尾页 ";
-
- $pagenav.=" 到第 ;
- for($i=1;$i<=$lastpg;$i++){
- if($i==$page) $pagenav.=";
- else $pagenav.=";
- }
- $pagenav.=" 页,共 $lastpg 页";
- }
- }
- ?>
|