PHP 페이징 클래스 코드는 다양한 스타일을 지원하며 페이징 방법을 설정할 수 있습니다.

WBOY
풀어 주다: 2016-07-25 08:52:39
원래의
990명이 탐색했습니다.
  1. 클래스 페이지 {

  2. 비공개 $total;//총 수량
  3. 비공개 $limit; //mysql의 제한문 반환
  4. private $pageStart;//시작값
  5. private $pageStop;//끝값
  6. private $pageNumber;//페이징 번호 개수 표시
  7. private $ page;//현재 페이지
  8. private $pageSize;//각 페이지에 표시되는 숫자
  9. private $pageToatl;//총 페이지 수
  10. private $pageParam;//Paging 변수
  11. private $uri ;//URL 매개변수
  12. /**
  13. * 페이징 설정 스타일은 대소문자를 구분하지 않습니다
  14. * %pageToatl% //전체 페이지 수
  15. * %page%//현재 페이지
  16. * %pageSize% //표시되는 데이터 항목 수 현재 페이지에서
  17. * %pageStart%//이 페이지의 시작 항목 수
  18. * %pageStop%//이 페이지의 끝 항목 수
  19. * %total%//총 데이터 항목 수
  20. * %first%// 홈페이지
  21. * %ending%//마지막 페이지
  22. * %up%//이전 페이지
  23. * %down%//다음 페이지
  24. * %F %//시작 페이지
  25. * %E%//끝 페이지
  26. * %omitFA%//앞 생략 및 점프
  27. * %omitEA%//뒤 생략 및 점프
  28. * %omitF%/ /앞 생략 및 점프
  29. * %omitE%//다음 생략
  30. * %numberF%//숫자 페이징 고정 개수
  31. * %numberD%//왼쪽 및 오른쪽 동일한 숫자 페이징
  32. * % input%//입력박스 점프
  33. * %GoTo%//점프 버튼
  34. */ bbs.it-home.org
  35. private $pageType = '페이지 %page%/total %pageToatl % page%first%%up%%F%%omitFA%%numberF%%omitEA%%E%%down%%ending%';
  36. //표시 값 설정
  37. private $pageShow = array ('첫번째'=>'홈페이지','종료'=>'마지막 페이지','위'=>'이전 페이지','아래'=>'다음 페이지','이동'=> ;'GO');

  38. /**

  39. * 초기화 데이터, 구축 방법
  40. * @access public
  41. * @param int $total 총 데이터량
  42. * @param int $pageSize 페이지당 표시되는 항목 수
  43. * @param int $ pageNumber 페이징 번호는 숫자를 표시합니다(%numberF%와 %numberD%를 사용하면 다른 효과가 나타납니다)
  44. * @param string $pageParam 페이징 변수
  45. * @return void
  46. */
  47. 공개 함수 __construct($total,$pageSize=10,$pageNumber=5,$ pageParam=' p'){
  48. $this->total = $total<0?0:$total;
  49. $this->pageSize = $pageSize<0?0:$pageSize;
  50. $this- >pageNumber = $pageNumber<0?0:$pageNumber;
  51. $this->pageParam = $pageParam;
  52. $this->calculate();
  53. }
  54. /**

  55. * 페이지 매김 표시
  56. * @access public
  57. * @return string HTML 페이지 매김 문자열
  58. */
  59. 공개 함수 pageShow(){
  60. $this->uri();
  61. if($this->pageToatl>1 ){
  62. if($this->page == 1){
  63. $first = ''.$this->pageShow['first']';
  64. $up = ''.$this->pageShow['up'].'';
  65. } else{
  66. $first = ''.$this->pageShow[ '첫 번째' ].'';
  67. $up = ''.$this->pageShow['up'].'';
  68. }
  69. if($this-> ;page > ;= $this->pageToatl){
  70. $ending = ''.$this->pageShow['ending'].' 🎜>$down = ''.$this->pageShow['down'].'';
  71. }else{
  72. $ending = ''.$this- >pageShow ['ending'].'';
  73. $down = ''.$this->pageShow['down'].'';
  74. }
  75. $input = '< input type="text" value="'.$this->page.'" onkeydown="javascript: if(event.keyCode==13){var value =parseInt(this.value); var page =(value> ;'.$this->pageToatl.') ? '.$this->pageToatl.' : value=''.$this->uri.'&'.$this-> =' 페이지 ''; return false;}">';
  76. $GoTo = '';
  77. }else{
  78. $first = '';$ up =' ';$ending = '';$down = '';$input = '';$GoTo = '';
  79. }
  80. $this->numberF();
  81. return str_ireplace(array('%pageToatl%','%page%','%pageSize%','%pageStart%','%pageStop%', ' %total%','%first%','%ending%','%up%','%down%','%input%','%GoTo%'),array($this->; pageToatl ,$this->page,$this->pageStop-$this->pageStart,$this->pageStart,$this->pageStop,$this->total,$first,$ending,$up,$down,$ input,$GoTo),$this->pageType);
  82. }
  83. /**

  84. *數字分頁
  85. */
  86. 原生函數numberF(){
  87. $pageF = stripos($this->pageType,'%numberF%');
  88. $pageD = stripos($this->pageType,'%numberD%');
  89. $numberF = '';$numberD = '' ;$F = '';$E ='';$omitF = '';$omitFA = '';$omitE = '';$omitEA = '';
  90. if($pageF!==false || $pageD!==false){
  91. if($pageF!==false){
  92. $number = $this->pageNumber%2==0 ?$this->pageNumber/2:($this- >pageNumber 1)/2;
  93. $DStart = $this->page - $numberpage - $number- 1:0;
  94. if($this->頁$number- $DStart > $this->pageToatl){
  95. $DStop = ($this->頁$number-$DStart) - $this->pageToatl;
  96. $forStop = $this->pageToatl 1;
  97. }else{
  98. $DStop = 0;
  99. $forStop = $this->頁$number- $DStart 1;
  100. }
  101. $forStart = $this->page-$number-$ DStop頁-$number-$DStop;
  102. for($ i=$forStart;$iif($i==$this->page){
  103. $numberF .= ''.$i.'; ';
  104. }else{
  105. $numberF .= ''.$i.'';
  106. }
  107. }
  108. }
  109. if($pageD!==false){
  110. $number = $this- >pageNumber ;
  111. $forStart = $this->page-$number>0?$this->page-$number:1;
  112. $forStop = $this->page $number>$ $$this->pageToatl 1 :$this->第$number 1;
  113. for($i=$forStart;$ipage; $i){
  114. $numberD .= ''.$i.' ';
  115. }
  116. $numberD .= ''.$this->頁。 >第1 頁;
  117. for($i=$start;$i$numberD .= ''.$i.'';
  118. }
  119. }
  120. $F = $forStart>1?'uri.'&'.$this->pageParam.'=1">1':'' ;
  121. $E = $forStop pageToatl 1?''.$this->pageToatl.'':'';
  122. if($forStart>2){
  123. $omitF = '…
  124. ';
  125. $startA = $this->page-$numberpage-$number;
  126. $ omitFA = 'uri.'&'.$this->pageParam.'='.$startA.'">… ;';
  127. }
  128. if($forStoppageToatl){
  129. $omitE = '';
  130. $stopA = $this->頁$number> $ $this->pageToatl:$this->page $number;
  131. $omitEA = '';
  132. }
  133. }
  134. $this->pageType = str_ireplace(array('%F%','% E%', '%omitFA%','%omitEA%','%omitF%','%omitE%','%numberF%','%numberD%'),陣列($F,$E,$ omitFA,$omitEA ,$omitF,$omitE,$numberF,$numberD),$this->pageType);
  135. }
  136. /**

  137. *處理url的方法
  138. * @access public
  139. * @param array $url 保持URL直對關係數組
  140. * @return string 過濾後的url尾參數
  141. */
  142. 函數uri() {
  143. $url = $_SERVER["REQUEST_URI"];
  144. $ par = parse_url($url);
  145. if (isset($par['query'])) {
  146. parse_str($ par['query'],$query);
  147. if(!is_array( $this->uri)){
  148. $this->uri = array();
  149. }
  150. array_merge($ query,$this->uri);
  151. unset($query [$this->pageParam]);
  152. while($key = array_search('',$query)){
  153. unset($query [$key]);
  154. }
  155. $this ->uri = $par['path'].'?'.http_build_query($query);
  156. }else{
  157. $this-> uri = $par['path'].'?' ;
  158. }
  159. }
  160. /**

  161. * 設定limit方法及計算起始條數與結束條數
  162. */
  163. 創函數calculate(){
  164. $this->pageToatl = ceil($this->total/$this ->pageSize) ;
  165. $this->page = intval($_GET[$this->pageParam]);
  166. $this->page = $this->page>=1? $this->page>$this->pageToatl?$this->pageToatl:$this->page:1;
  167. $this->pageStart = ($this->page-1) *$this->pageSize ;
  168. $this->pageStop = $this->pageStart $this->pageSize;
  169. $this->pageStop = $this->pageStop>$this ->總計? ->pageStop;
  170. $this->limit = $this->pageStart.','.$this->pageStop;
  171. }
  172. /**

  173. * 設定過濾器
  174. * /
  175. public function __set($name,$value){
  176. switch($name){
  177. case 'pageType':
  178. case 'uri':
  179. $this->$name = $value;
  180. return;
  181. case 'pageShow':
  182. if(is_array($value)){
  183. $this->pageShow = array_merge($this->pageShow,$value);
  184. }
  185. return;
  186. }
  187. }
  188. ;/**

  189. * 取值過濾器
  190. */
  191. public function __get($name){
  192. switch ( $name){
  193. case 'limit':
  194. case 'pageStart':
  195. case ' pageStop':
  196. return $this->$name;
  197. 預設:
  198. return;
  199. }
  200. }
  201. }
複製程式碼


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!