首頁  >  文章  >  後端開發  >  個人寫的一個簡單通用分頁類

個人寫的一個簡單通用分頁類

WBOY
WBOY原創
2016-07-25 08:47:57935瀏覽
個人學習php所寫簡單分頁類,通用性比較強
  1. /**
  2. * 簡單分頁類
  3. * @author:phpprince
  4. * @QQ: 8923052
  5. * @date: 2014-04-22 21:08:35
  6. */
  7. class Page{
  8. protected $url; //位址
  9. protected $allnum; / /總記錄數
  10. protected $current; //目前頁碼
  11. protected $pagesize; //每頁顯示多少筆記錄
  12. protected $postfix; //後字
  13. protected $style; //顯示樣式共3種樣式,1 2 3 分別表示前5後4,前3後3,前4後4
  14. public function __construct($url,$allnum,$current,$pagesize=10,$ postfix='',$style=1){
  15. $this->url=$url;
  16. $this->allnum=$allnum;
  17. $this->current=$current;
  18. $this->pagesize=$pagesize;
  19. $this->postfix=$postfix;
  20. $this->style=$style;
  21. }
  22. //取得總頁數
  23. protected function maxPageNum(){
  24. $max=ceil($this->allnum/$this->pagesize);
  25. //頁碼超限校正
  26. if($this->current>$this->current>$this->current>$this->current>$this->current>$ max){
  27. $this->current=$max;
  28. }
  29. if($this->current $this->current=1;
  30. }
  31. return $max;
  32. }
  33. //取得第一頁連結完整html str
  34. protected function firstUrl(){
  35. if($this->current!=1)
  36. {
  37. return '首頁';
  38. }else{
  39. return '首頁';
  40. }
  41. }
  42. //取得上一頁連結完整html str
  43. protected function prevUrl(){
  44. if($this->current $fullurl='上一頁';
  45. }else{
  46. $fullurl=$this->url.($this->current-1).$this->postfix;
  47. $fullurl='上頁';
  48. }
  49. return $fullurl;
  50. }
  51. //取得下一頁連結完整html str
  52. protected function nextUrl(){
  53. if($this->current>= $this->maxPageNum()){
  54. $fullurl='下一頁';
  55. }else{
  56. $ fullurl=$this->url.($this->current 1).$this->postfix;
  57. $fullurl='下一頁';
  58. }
  59. return $fullurl;
  60. }
  61. //取得最後一頁鏈接完整html str
  62. protected function lastUrl(){
  63. if($this->current>=$this->maxPageNum()){
  64. $fullurl='末頁';
  65. }else{
  66. $fullurl=$this->url.$this->maxPageNum().$this->postfix;
  67. $fullurl ='末頁';
  68. }
  69. return $fullurl;
  70. }
  71. //取得指定頁碼完整url
  72. protected function getUrl($pageno){
  73. return $this->url.$pageno.$this->postfix;
  74. }
  75. //指定顯示樣式
  76. protected function getStyle(){
  77. switch($this->style){
  78. case 1:
  79. $before=5;
  80. $after=4;
  81. break;
  82. case 2:
  83. $before=3;
  84. $after=3;
  85. break;
  86. case 3:
  87. $ before=4;
  88. $after=4;
  89. break;
  90. default :
  91. $before=5;
  92. $after=4;
  93. }
  94. return array ($before,$after);
  95. }
  96. //取得中間URL 1 2 3 4 5 ⑥ 7 8 9 10
  97. protected function getMiddelUrl(){
  98. $max=$this ->maxPageNum(); //先取得總頁,可校正目前頁超限問題
  99. $current=$this->current; //目前頁碼必須合法,才能保證下面的頁碼範圍一定正確
  100. //得到目前樣式
  101. list($before,$after)=$this->getStyle();
  102. $startno=$current-$before; //起始頁碼
  103. $endno=$current $after; //終止頁碼
  104. //為保證輸出始終符合要求,在頁面不超限前提下,起始頁增加,則終止頁必須增加,反之同理.
  105. while( $endno>$max||$startno if($endno>$max){ //終止頁碼超界
  106. $endno--;
  107. if($startno>1){
  108. $startno--;
  109. }
  110. }
  111. if($startno $startno ;
  112. if($endno $endno ;
  113. }
  114. }
  115. }
  116. $str=''; //用來儲存整個html str
  117. for($i=$startno;$i $currenturl=$ this->getUrl($i);
  118. if($i!=$current){
  119. $str.="{$i}" ;
  120. }else{
  121. $str.=''.$i.'';
  122. }
  123. }
  124. return $str;
  125. }
  126. //回傳完整分頁html字串
  127. public function getPageStr(){
  128. $str='
    ' .$this->firstUrl().$this->prevUrl();
  129. $str.=$this->getMiddelUrl();
  130. $str.=$this->nextUrl().$this- >lastUrl().'共'.$this->maxPageNum().'頁'.$this->allnum.'條
';
  • return $str;
  • }
  • }
  • ?>
  • 複製程式碼 個人寫的一個簡單通用分頁類


    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn