>백엔드 개발 >PHP 튜토리얼 >여러 페이징 방법을 사용하는 PHP 페이징 클래스

여러 페이징 방법을 사용하는 PHP 페이징 클래스

WBOY
WBOY원래의
2016-07-25 09:00:34788검색
  1. 수업 페이지 {

  2. //수업 시작
  3. /**************************************************** * ****
  4. * $total 총 레코드 수
  5. * $pageNum 각 페이지에 표시되는 항목 수
  6. * $url = '' link
  7. * $page->StartPage (표시 카테고리 통계, 문자 카테고리/숫자 페이징, 점프);
  8. * $page->StartPage(true/false, true/false, true/false);
  9. * 사이트 http://bbs.it-home .org
  10. ********************************************* *** *********** /
  11. private $total; //총 레코드 수
  12. private $pageNum; //각 페이지에 표시되는 숫자
  13. private $page; //현재 페이지 수
  14. private $pages; 총 페이지 수
  15. private $url; //페이지 url
  16. private $Aque; //URL 매개변수
  17. /* 생성자*/
  18. public 함수 PAGE($total, $pageNum, $url=' ?'){
  19. $this->total = $total; //총 레코드 수
  20. $this->pageNum = $pageNum; //페이지당 표시되는 수
  21. $this-> ;url = $this->StrSift($url); //$url 값이 유효한지 확인합니다.
  22. $this->Aque = $_GET;
  23. $this ->page = $this->StrSift($_GET['page']) //현재 페이지 GET(전역 변수) 모드 매개변수, 현재 페이지 번호
  24. $ this->page = is_numeric($this ->page) ? $this->page : 1; //현재 페이지 번호가 숫자가 아닌 경우 1로 설정합니다.
  25. $this-> 페이지 = ceil($total/$pageNum); //전체 페이지 수.
  26. if($this->page<1) $this->page = 1; 1, 1로 설정하세요.
  27. //if ($this->page>$this->pages) $this->page = $this->pages; //페이지 번호가 더 클 경우; 최대 페이지 수보다 최대 페이지 수로 설정하세요.
  28. }
  29. /******************
  30. * 페이징 방법
  31. *********************/
  32. function StartPage($str, $view=true, $jump=true){
  33. if($view==true) $PageStr .= $this-> ;GetCount(); //통계 정보 페이징
  34. if($str=='str') $PageStr .= $this-> GetPageStr(); //문자 페이징 형식 선택
  35. else $PageStr .= $this->GetPageNum(); //숫자 페이징 형식 선택
  36. if($jump==true) $PageStr .= $this ->JumpSelect(); //점프
  37. return $PageStr;
  38. }

  39. /***********************************************

  40. * 표시 통계 정보 형식: 총 5개 기록 페이지: 2/3
  41. ************************************ ****************/
  42. function GetCount(){
  43. $CountStr = "전체". $this-> ;total ."기록 페이지:".$this->page."/".$this->pages."   ";
  44. return $CountStr;
  45. }

  46. /***********************************************

  47. * 페이지 매김 형식 1: 첫 페이지 이전 페이지 다음 페이지 마지막 페이지
  48. ************************************ ****************/
  49. function GetPageStr(){
  50. $url = $this->url; //URL 가져오기
  51. //URL 매개변수 처리: 배열의 키는 URL 변수이고, 배열의 값은 URL 변수의 값입니다.
  52. foreach( $this->Aque as $key => $val){
  53. 스위치($key){
  54. 케이스 "페이지":
  55. $Next = $val 1;
  56. $Prev = $ val - 1;
  57. 중단;
  58. 기본값:
  59. $Sque . = "&$key=".$this->StrSift($val);
  60. }
  61. }
  62. if($Next==0) $Next=2;
  63. //홈페이지에서 한 페이지
  64. switch($this->page){
  65. case $this->page<=1 :
  66. $pagestr .= "홈페이지 ";
  67. $pagestr . = "이전 페이지 ";
  68. break;
  69. 기본값:
  70. $pagestr .= "< a href='".$url."?page=1$Sque'> 홈  ";
  71. $pagestr .= "이전 페이지   ";
  72. }
  73. //다음 페이지의 마지막 페이지
  74. switch($this->page){
  75. 케이스 $this->page>=$this-> 페이지:
  76. $pagestr .= "다음 페이지  ";
  77. $pagestr .= "마지막 페이지  ";
  78. break;
  79. 기본값:
  80. $pagestr .= "다음 페이지  ";
  81. $pagestr .= "마지막 페이지  ";
  82. }
  83. //페이징 문자열을 반환합니다.
  84. return $pagestr;
  85. }
  86. /**************************************************** * *******

  87. * 페이징 형식은 다음과 같습니다. 총 4307 기록 페이지: 1/72 1 2 3 4 5 6 7 8 9 10
  88. ******** **** ********************************************** **/
  89. function GetPageNum(){
  90. $url = $this->url
  91. //URL 매개변수 구성 처리: 배열의 키는 URL 변수이고, 배열의 값은 URL 변수의 값입니다.
  92. foreach($this->Aque as $key => $val){
  93. 스위치($key){
  94. 케이스 $key!="page":
  95. $Sque .= "&$key=".$this->StrSift($val);
  96. }
  97. }
  98. switch($this ->pages){
  99. //총 페이지 수가 12페이지보다 큽니다:
  100. case $this->pages>12:
  101. //Before the 페이징 번호: <<<
  102. 스위치($this->page){
  103. 케이스 $this->page>1:
  104. $pagestr .= " ";
  105. $pagestr .= " ";
  106. break;
  107. 기본값:
  108. $pagestr .= "< " ;
  109. $pagestr .= "<< "
  110. }
  111. //페이지 번호: 1 2 3 4 5 6 왼쪽에 6개의 페이징 링크가 있고 오른쪽에 6개의 페이징 링크가 있습니다. 현재 페이지 번호.
  112. for($i=$this->page -6; $i<=$this->page 6; $i ){
  113. if($i>$this- >pages) break;
  114. if($i==$this-> page) $pagestr .= $i." ";
  115. elseif($i>=1) $pagestr .= " $i ";
  116. }
  117. //번호 페이징 후: > >> ;
  118. 스위치($this->page){
  119. 케이스 $this ->page<$this->pages:
  120. $pagestr .= " >> ";
  121. $pagestr .= ">  ";
  122. break;
  123. 기본값:
  124. $pagestr .= ">  ;";
  125. $pagestr .= ">> ";
  126. }
  127. break;
  128. 기본값:
  129. //총 페이지 수는 12페이지 미만입니다.
  130. for($i=1; $i<=$this->pages; $i ){
  131. 스위치($i){
  132. 케이스 $i==$this->페이지:
  133. $pagestr .= $i." ";
  134. break;
  135. 기본값:
  136. $pagestr .= "$i ";
  137. }
  138. }
  139. }
  140. //페이징 문자열을 반환합니다.
  141. return $pagestr;
  142. }
  143. /************************
  144. * 점프 페이지를 정의하세요. BEGIN
  145. **************** **********/
  146. function JumpSelect(){
  147. $url = $this->url
  148. //처리 URL 매개변수: 배열의 키는 URL 변수입니다. 배열의 값은 URL 변수의 값입니다.
  149. foreach($this->Aque as $key => ; $val){
  150. if($key != "page") $Sque .= "&$key=".$this->StrSift($val);
  151. }
  152. $SelectStr = "n


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