>  기사  >  백엔드 개발  >  간단한 PHP 페이지 매김 클래스 코드

간단한 PHP 페이지 매김 클래스 코드

WBOY
WBOY원래의
2016-07-25 08:43:27943검색
  1. class Page {
  2. private $total; //데이터 테이블의 총 레코드 수
  3. private $listRows; 각 페이지의 행 수
  4. private $limit;
  5. private $uri;
  6. private $pageNum; //페이지 수
  7. private $config=array('header'=>"records", "prev"= >"이전 페이지", "next"=>"다음 페이지", "first"=>"홈 페이지", "last"=>"마지막 페이지");
  8. 비공개 $ listNum=8 ;
  9. /*
  10. * $total
  11. * $listRows
  12. */
  13. 공개 함수 __construct($total, $listRows=10, $pa=""){
  14. $this ->total=$total;
  15. $this->listRows=$listRows;
  16. $this->uri=$this->getUri($pa);
  17. $this -> page=!empty($_GET["page"]) ? $_GET["page"] : 1;
  18. $this->pageNum=ceil($this->total/$this-> ;listRows) ;
  19. $this->limit=$this->setLimit();
  20. }
  21. private function setLimit(){
  22. return "Limit ".($this -> 페이지-1)*$this->listRows.", {$this->listRows}";
  23. }
  24. 비공개 함수 getUri($pa){
  25. $url =$_SERVER ["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa;
  26. echo $url;
  27. $parse=parse_url ($url );
  28. if(isset($parse["query"])){
  29. parse_str($parse['query'],$params);
  30. unset( $params["page"]);
  31. $url=$parse['path'].'?'.http_build_query($params);
  32. }
  33. 반환 $url;
  34. }
  35. 비공개 함수 __get($args){
  36. if($args=="limit")
  37. return $this->limit;
  38. else
  39. return null;
  40. }
  41. 비공개 함수 start(){
  42. if($this->total==0)
  43. return 0;
  44. else
  45. return ($this ->page-1)*$this->listRows 1;
  46. }
  47. 비공개 함수 end(){
  48. return min($this->page*$this -> listRows,$this->total);
  49. }
  50. 비공개 함수 first(){
  51. if($this->page==1)
  52. $html. ='' ;
  53. else
  54. $html.="  {$this->config["first "]}   ";
  55. return $html;
  56. }
  57. 비공개 함수 prev(){
  58. if($this-> page== 1)
  59. $html.='';
  60. else
  61. $html.="  {$this->config["prev"]}  ";
  62. return $html;
  63. }
  64. 비공개 함수 pageList(){
  65. $linkPage="";
  66. $inum=floor($this->listNum/2);
  67. for($ i=$inum; $i>=1; $i--){
  68. $page=$this->page-$i;
  69. if($page<1)
  70. 계속 ;
  71. $linkPage.=" {$page}  ;";
  72. }
  73. $linkPage.=" {$this->page} ";
  74. for($i=1 ; $i< ;=$inum; $i ){
  75. $page=$this->page $i;
  76. if($page<=$this->pageNum)
  77. $linkPage.= "  {$page} ";
  78. else
  79. break;
  80. }
  81. return $linkPage;
  82. }
  83. 비공개 함수 next(){
  84. if($this->page==$this->pageNum)
  85. $html .='';
  86. else
  87. $html.="  {$this->config["next"]}  ";
  88. return $html;
  89. }
  90. 비공개 함수 last(){
  91. if($this->page==$this->pageNum)
  92. $html.='';
  93. else
  94. $ html.="  {$this->config["last" ]}  ";
  95. return $html;
  96. }
  97. 비공개 함수 goPage(){
  98. return '  < input style="WIDTH: 25px" value="'.$this->page.'">  ';
  99. }
  100. 함수 fpage($display=array(0,1,2,3,4,5,6,7,8)){
  101. $html[0]="  共유{ $this->total}{$this->config["header"]}  ";
  102. $html[1]="  每页显示< Strong>".($this->end()-$this->start() 1)."条,本页{$this->start()}- {$this->end()}条  ";
  103. $html[2]="  {$this->page}/{ $this->pageNum}页  ";
  104. $html[3]=$this->first();
  105. $html[4]=$ this->prev();
  106. $html[5]=$this->pageList();
  107. $html[6]=$this->next();
  108. $html[ 7]=$this->last();
  109. $html[8]=$this->goPage();
  110. $fpage='';
  111. foreach($display as $index) {
  112. $fpage.=$html[$index];
  113. }
  114. return $fpage;
  115. }
  116. }
제제대码

分页, php


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.