php分页类 潇湘博客

  1. <?php
  2. classSubPages{
  3. private$each_disNums;//每页显示的条目数
  4. private$nums;//总条目数
  5. private$current_page;//当前被选中的页
  6. private$sub_pages;//每次显示的页数
  7. private$pageNums;//总页数
  8. private$page_array=array();//用来构造分页的数组
  9. private$subPage_link;//每个分页的链接
  10. private$subPage_type;//显示分页的类型
  11. /*
  12. __construct是SubPages的构造函数,用来在创建类的时候自动运行.
  13. @$each_disNums每页显示的条目数
  14. @nums总条目数
  15. @current_num当前被选中的页
  16. @sub_pages每次显示的页数
  17. @subPage_link每个分页的链接
  18. @subPage_type显示分页的类型
  19. 当@subPage_type=1的时候为普通分页模式
  20. example:共4523条记录,每页显示10条,当前第1/453页[首页][上页][下页][尾页]
  21. 当@subPage_type=2的时候为经典分页样式
  22. example:当前第1/453页[首页][上页]12345678910[下页][尾页]
  23. */
  24. function__construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
  25. $this->each_disNums=intval($each_disNums);
  26. $this->nums=intval($nums);
  27. if(!$current_page){
  28. $this->current_page=1;
  29. }else{
  30. $this->current_page=intval($current_page);
  31. }
  32. $this->sub_pages=intval($sub_pages);
  33. $this->pageNums=ceil($nums/$each_disNums);
  34. $this->subPage_link=$subPage_link;
  35. $this->show_SubPages($subPage_type);
  36. //echo$this->pageNums."--".$this->sub_pages;
  37. }
  38. /*
  39. __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。
  40. */
  41. function__destruct(){
  42. unset($each_disNums);
  43. unset($nums);
  44. unset($current_page);
  45. unset($sub_pages);
  46. unset($pageNums);
  47. unset($page_array);
  48. unset($subPage_link);
  49. unset($subPage_type);
  50. }
  51. /*
  52. show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页
  53. */
  54. functionshow_SubPages($subPage_type){
  55. if($subPage_type==1){
  56. $this->subPageCss1();
  57. }elseif($subPage_type==2){
  58. $this->subPageCss2();
  59. }
  60. }
  61. /*
  62. 用来给建立分页的数组初始化的函数。
  63. */
  64. functioninitArray(){
  65. for($i=0;$i<$this->sub_pages;$i++){
  66. $this->page_array[$i]=$i;
  67. }
  68. return$this->page_array;
  69. }
  70. /*
  71. construct_num_Page该函数使用来构造显示的条目
  72. 即使:[1][2][3][4][5][6][7][8][9][10]
  73. */
  74. functionconstruct_num_Page(){
  75. if($this->pageNums<$this->sub_pages){
  76. $current_array=array();
  77. for($i=0;$i<$this->pageNums;$i++){
  78. $current_array[$i]=$i+1;
  79. }
  80. }else{
  81. $current_array=$this->initArray();
  82. if($this->current_page<=3){
  83. for($i=0;$i<count($current_array);$i++){
  84. $current_array[$i]=$i+1;
  85. }
  86. }elseif($this->current_page<=$this->pageNums&&$this->current_page>$this->pageNums-$this->sub_pages+1){
  87. for($i=0;$i<count($current_array);$i++){
  88. $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
  89. }
  90. }else{
  91. for($i=0;$i<count($current_array);$i++){
  92. $current_array[$i]=$this->current_page-2+$i;
  93. }
  94. }
  95. }
  96. return$current_array;
  97. }
  98. /*
  99. 构造普通模式的分页
  100. 共4523条记录,每页显示10条,当前第1/453页[首页][上页][下页][尾页]
  101. */
  102. functionsubPageCss1(){
  103. $subPageCss1Str="";
  104. $subPageCss1Str.="共".$this->nums."条记录,";
  105. $subPageCss1Str.="每页显示".$this->each_disNums."条,";
  106. $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页";
  107. if($this->current_page>1){
  108. $firstPageUrl=$this->subPage_link."1";
  109. $prewPageUrl=$this->subPage_link.($this->current_page-1);
  110. $subPageCss1Str.="[<ahref='$firstPageUrl'>首页</a>]";
  111. $subPageCss1Str.="[<ahref='$prewPageUrl'>上一页</a>]";
  112. }else{
  113. $subPageCss1Str.="[首页]";
  114. $subPageCss1Str.="[上一页]";
  115. }
  116. if($this->current_page<$this->pageNums){
  117. $lastPageUrl=$this->subPage_link.$this->pageNums;
  118. $nextPageUrl=$this->subPage_link.($this->current_page+1);
  119. $subPageCss1Str.="[<ahref='$nextPageUrl'>下一页</a>]";
  120. $subPageCss1Str.="[<ahref='$lastPageUrl'>尾页</a>]";
  121. }else{
  122. $subPageCss1Str.="[下一页]";
  123. $subPageCss1Str.="[尾页]";
  124. }
  125. echo$subPageCss1Str;
  126. }
  127. /*
  128. 构造经典模式的分页
  129. 当前第1/453页[首页][上页]12345678910[下页][尾页]
  130. */
  131. functionsubPageCss2(){
  132. $subPageCss2Str="";
  133. $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页";
  134. if($this->current_page>1){
  135. $firstPageUrl=$this->subPage_link."1";
  136. $prewPageUrl=$this->subPage_link.($this->current_page-1);
  137. $subPageCss2Str.="[<ahref='$firstPageUrl'>首页</a>]";
  138. $subPageCss2Str.="[<ahref='$prewPageUrl'>上一页</a>]";
  139. }else{
  140. $subPageCss2Str.="[首页]";
  141. $subPageCss2Str.="[上一页]";
  142. }
  143. $a=$this->construct_num_Page();
  144. for($i=0;$i<count($a);$i++){
  145. $s=$a[$i];
  146. if($s==$this->current_page){
  147. $subPageCss2Str.="[<spanstyle='color:red;font-weight:bold;'>".$s."</span>]";
  148. }else{
  149. $url=$this->subPage_link.$s;
  150. $subPageCss2Str.="[<ahref='$url'>".$s."</a>]";
  151. }
  152. }
  153. if($this->current_page<$this->pageNums){
  154. $lastPageUrl=$this->subPage_link.$this->pageNums;
  155. $nextPageUrl=$this->subPage_link.($this->current_page+1);
  156. $subPageCss2Str.="[<ahref='$nextPageUrl'>下一页</a>]";
  157. $subPageCss2Str.="[<ahref='$lastPageUrl'>尾页</a>]";
  158. }else{
  159. $subPageCss2Str.="[下一页]";
  160. $subPageCss2Str.="[尾页]";
  161. }
  162. echo$subPageCss2Str;
  163. }
  164. }
  165. ?>

  1. <?php
  2. require_once("SubPages.php");
  3. //每页显示的条数
  4. $page_size=20;
  5. //总条目数
  6. $nums=1024;
  7. //每次显示的页数
  8. $sub_pages=10;
  9. //得到当前是第几页
  10. $pageCurrent=$_GET["p"];
  11. //if(!$pageCurrent)$pageCurrent=1;
  12. $subPages=newSubPages($page_size,$nums,$pageCurrent,$sub_pages,"test.php?p=",2);
  13. ?>
转载:http://www.samchug.com/PHP/12183#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值