自己寫的一個通用分頁,帶下拉選擇,可設置顯示的分頁鏈接數,不多說,看代碼和注釋:
1<?php
2//Written by Shaoyun 20:17 2008年5月31日
3//Email:shaoyun at yeah.net
4//Blog:http://shaoyun.cnblogs.com
5//分頁函數:splitpage(記錄總數,每頁顯示記錄數,顯示幾條分頁鏈接)
6function splitpage($rscount,$pagesize,$shownum){
7//計算總頁數
8if ($rscount % $pagesize){
9 $pagenum=(int)($rscount/$pagesize)+1;
10}else{
11 $pagenum=(int)($rscount/$pagesize);
12}
13//過濾獲取正確的頁碼
14if(!isset($_GET["page"])){
15 $curpage=1;
16}elseif(is_numeric($_GET["page"])){
17 if($_GET["page"]>$pagenum)
18 $curpage=$pagenum;
19 else
20 $curpage=(int)$_GET["page"];
21 if($curpage<1)
22 $curpage=1;
23}else{
24 $curpage=1;
25}
26//設置前一頁、後一頁、上一頁、下一頁
27$first_page=1;
28$last_page=$pagenum;
29$up_page=$curpage-1;
30$down_page=$curpage+1;
31//獲取當前文件名
32$addr_url=$_SERVER["SCRIPT_NAME"];
33$addr_url=strrev($addr_url);
34$addr_url=substr($addr_url,0,strpos($addr_url,"/"));
35$addr_url=strrev($addr_url);
36$addr_url=$addr_url."?page=";
37
38$page_html='共'.$rscount.'條記錄 '.$pagesize.'條/頁 第'.$curpage.'/'.$pagenum.'頁 ';
39
40$page_html.="<a href='".$addr_url.$first_page."'>首頁</a> ";
41if($curpage>1){
42 $page_html.="<a href='".$addr_url.$up_page."'>上一頁</a> ";
43}else{
44 $page_html.="上一頁 ";
45}
46//計算分頁邊界
47if($shownum % 2){
48 $show_front_num=(int)($shownum/2);
49 $show_back_num=(int)($shownum/2);
50}else{
51 $show_front_num=(int)($shownum/2)-1;
52 $show_back_num=(int)($shownum/2);
53}
54if($curpage<$show_front_num+1){
55 $fbegin=1;
56 $fend=$shownum;
57}elseif($curpage+$show_back_num>$pagenum){
58 $fend=$pagenum;
59 $fbegin=$pagenum-$shownum+1;
60}else{
61 $fbegin=$curpage-$show_front_num;
62 $fend=$curpage+$show_back_num;
63}
64//分頁鏈接
65for($idx=$fbegin;$idx<$fend+1;++$idx){
66 if($curpage==$idx){
67 $page_html.="<b>".$idx."</b> ";
68 }else{
69 $page_html.="<a href='".$addr_url.$idx."'>".$idx."</a> ";
70 }
71}
72
73if($curpage<$pagenum){
74 $page_html.="<a href='".$addr_url.$down_page."'>下一頁</a> ";
75}else{
76 $page_html.="下一頁 ";
77}
78$page_html.="<a href='".$addr_url.$last_page."'>尾頁</a> ";
79//下拉導航代碼
80$page_html.="跳轉到 ";
81$page_html.="<select onChange=window.location.href=this.options[this.selectedIndex].value>";
82for($idx=1;$idx<$pagenum+1;++$idx){
83 if($curpage==$idx){
84 $page_html.="<option value='".$addr_url.$idx."' selected>第".$idx."頁</option>";
85 }else{
86 $page_html.="<option value='".$addr_url.$idx."'>第".$idx."頁</option>";
87 }
88}
89$page_html.="</select>";
90
91echo $page_html;
92}
93?>