ホームページ  >  記事  >  バックエンド開発  >  単純なPHPページネーションクラスコード

単純なPHPページネーションクラスコード

WBOY
WBOYオリジナル
2016-07-25 08:43:27944ブラウズ
    class Page {
  1. private $total; //データテーブルの総レコード数
  2. private $listRows; //ページごとに表示される行数
  3. private $limit;
  4. private $uri;
  5. private $ pageNum; //ページ数
  6. private $config=array('header'=>"レコード", "prev"=>"前のページ", "next"=>"次のページ", " first "=>"ホームページ", "last"=>"最後のページ");
  7. private $listNum=8;
  8. /*
  9. * $total
  10. * $listRows
  11. */
  12. public function __construct($total , $ listRows=10, $pa=""){
  13. $this->total=$total;
  14. $this->listRows=$listRows;
  15. $this->uri=$this->getUri( $pa );
  16. $this->page=!empty($_GET["ページ"]) ? $_GET["ページ"] : 1;
  17. $this->pageNum=ceil($this->total /$ this->listRows);
  18. $this->limit=$this->setLimit();
  19. }
  20. プライベート関数 setLimit(){
  21. return "Limit ".($this->page- 1) *$this->listRows.", {$this->listRows}";
  22. }
  23. プライベート関数 getUri($pa){
  24. $url=$_SERVER["REQUEST_URI"].(strpos($ _SERVER[ "REQUEST_URI"], '?')?'':"?").$pa;
  25. echo $url;
  26. $parse=parse_url($url);
  27. if(isset($parse["クエリ" ])){
  28. parse_str($parse['query'],$params);
  29. unset($params["page"]);
  30. $url=$parse['path'].'?'.http_build_query ($ params);
  31. }
  32. return $url;
  33. }
  34. プライベート関数 __get($args){
  35. if($args=="limit")
  36. return $this->limit;
  37. else
  38. return null;
  39. }
  40. プライベート関数 start(){
  41. if($this->total==0)
  42. return 0;
  43. else
  44. return ($this->page-1)*$this->listRows +1 ;
  45. }
  46. プライベート関数 end(){
  47. return min($this->page*$this->listRows,$this->total);
  48. }
  49. プライベート関数 first(){
  50. if( $this->page==1)
  51. $html.='';
  52. else
  53. $html.="   {$this->config["first"]}  ";
  54. return $html;
  55. }
  56. プライベート関数 prev(){
  57. if($this-> page= =1)
  58. $html.='';
  59. else
  60. $html.="  {$this->config["prev"]}  ";
  61. return $html;
  62. }
  63. プライベート関数 pageList(){
  64. $ linkPage= "";
  65. $inum=floor($this->listNum/2);
  66. for($i=$inum; $i>=1; $i--){
  67. $page=$this -> ;page-$i;
  68. if($page<1)
  69. continue;
  70. $linkPage.="  {$page} ";
  71. }
  72. $linkPage.=" {$this->page} ";
  73. for($i=1; $ i<$inum; $i++){
  74. $page=$this->page+$i;
  75. if($page<=$this->pageNum)
  76. $linkPage.=" {$page} ";
  77. else
  78. Break;
  79. }
  80. return $linkPage;
  81. }
  82. プライベート関数next( ){
  83. if($this->page==$this->pageNum)
  84. $html.='';
  85. else
  86. $html.="  {$this->config["next"]}  ";
  87. $html を返す;
  88. }
  89. プライベート関数 last(){
  90. if($this->page==$this->pageNum)
  91. $html.='';
  92. else
  93. $html.="  {$this->config["last"]}  " ;
  94. return $html;
  95. }
  96. プライベート関数 goPage(){
  97. return '     ';
  98. }
  99. function fpage($display=array(0,1,2,3,4,5,6,7,8) ){
  100. $html[0]="  共有{$this->total}{$this->config["header"]}  " ;
  101. $html[1]="  每页显示".($this->end()-$this->start()+1)."条,本页{$this->start()}-{$this->end()}条  ";
  102. $html[2]="  ; {$this->page}/{$this->pageNum}页  ";
  103. $html[3]=$this->first ();
  104. $html[4]=$this->prev();
  105. $html[5]=$this->pageList();
  106. $html[6]=$this->next() ;
  107. $html[7]=$this->last();
  108. $html[8]=$this->goPage();
  109. $fpage='';
  110. foreach($display as $index){
  111. $fpage.=$html[$index];
  112. }
  113. return $fpage;
  114. }
  115. }
复制代

分页、php


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。