>백엔드 개발 >PHP 튜토리얼 >PHP 페이징 코드, 아름다운 스타일의 PHP 페이징 코드

PHP 페이징 코드, 아름다운 스타일의 PHP 페이징 코드

WBOY
WBOY원래의
2016-07-25 08:52:461198검색
  1. include "pager.class.php";
  2. $CurrentPage=isset($_GET['페이지'])?$_GET['페이지']:1;
  3. //die($CurrentPage);
  4. $myPage=새 호출기(1300,intval($CurrentPage));
  5. $pageStr= $myPage->GetPagerContent();
  6. //echo $pageStr;
  7. $myPage=새 호출기(90,intval($CurrentPage));
  8. $pageStr= $myPage->GetPagerContent();
  9. echo $pageStr;
  10. ?>
复主代码
  1. php分页演示-bbs.it-home.org
  2. <본문>
  3. include "pager.class.php";
  4. $CurrentPage=isset($_GET['페이지'])?$_GET['페이지']:1;
  5. //die($CurrentPage);
  6. $myPage=새 호출기(1300,intval($CurrentPage));
  7. $pageStr= $myPage->GetPagerContent();
  8. //echo $pageStr;
  9. $myPage=새 호출기(90,intval($CurrentPage));
  10. $pageStr= $myPage->GetPagerContent();
  11. echo $pageStr;
  12. ?>
复主代码

2) pager.class.php:

  1. * 예:

  2. $myPage =new Pager(1300,intval($CurrentPage));
  3. $pageStr= $myPage->GetPagerContent();
  4. echo $pageStr;
  5. */
  6. class Pager {
  7. private $pageSize = 10;
  8. 비공개 $pageIndex;
  9. 비공개 $totalNum;

  10. 비공개 $totalPagesCount;

  11. 비공개 $pageUrl;

  12. 비공개 정적 $_instance;

  13. 공용 함수 __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10, $p_initNum=3, $p_initMaxNum=5) {

  14. if (!isset ( $p_totalNum ) || !isset($p_pageIndex)) {
  15. die ( "페이지 초기화 오류" );
  16. }

  17. $this->totalNum = $p_totalNum;

  18. $this->pageIndex = $p_pageIndex;
  19. $this->pageSize = $p_pageSize;
  20. $this->initNum=$p_initNum;
  21. $this->initMaxNum=$p_initMaxNum;
  22. $this->totalPagesCount= ceil($p_totalNum / $p_pageSize);
  23. $this->pageUrl=$this->_getPageUrl();

  24. $this->_initPagerLegal();

  25. }

  26. /**
  27. * 페이지 부분이 제거된 현재 URL 문자열 가져오기
  28. *
  29. * @return String URL 문자열
  30. */
  31. 비공개 함수 _getPageUrl() {
  32. $CurrentUrl = $_SERVER["REQUEST_URI"];
  33. $arrUrl = pars_url($CurrentUrl);
  34. $urlQuery = $arrUrl["query"];

  35. $urlQuery = ereg_replace("(^|&)page=" $this- >pageIndex, "", $urlQuery);
  36. $CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl) ";
  37. }
  38. else $CurrentUrl.="page";

  39. } else {

  40. $CurrentUrl.="?page";
  41. }

  42. return $CurrentUrl;

  43. } *@return void

  44. */
  45. 비공개 함수 _initPagerLegal()
  46. {
  47. if((!is_numeric($this->pageIndex)) || $this->pageIndex<1)
  48. {
  49. $this->pageIndex=1;
  50. }elseif($this->pageIndex > $this->totalPagesCount)
  51. {
  52. $this->pageIndex=$this->totalPagesCount;
  53. }

  54. }

  55. //$this->pageUrl}={$i}
  56. //{$this->CurrentUrl}={$this-> TotalPages}
  57. 공용 함수 GetPagerContent() {
  58. $str = "
  59. //옵션 키
  60. if($this->pageIndex==1)
  61. {
  62. $str .="
  63. $str .="something "."n" n";
  64. }else
  65. {
  66. $str .=" tips$str .="
  67. }
  68. /*

  69. 달콤한 눈꽃송이

  70. */
  71. //한 눈에 10개
  72. $currnt=" ";
  73. if($this->totalPagesCount<=10)
  74. {

  75. for($i=1;$i<=$this->totalPagesCount;$ i )

  76. {

  77. if($i==$this-&pageIndex)
  78. { $currnt=" class='current'";}
  79. else
  80. { $currnt=""; }
  81. $str .="$i"."n" ;
  82. }
  83. }else //키 10개 추출
  84. { if($this->pageIndex<3) //키 인덱스3 삽입
  85. {
  86. for($i=1;$ i< ;=3;$i )
  87. {
  88. if($i==$this->pageIndex)
  89. { $currnt=" class='current'";}
  90. else
  91. { $currnt=""; }
  92. $str .="$i"."n" ;
  93. }

  94. $str.="."."n";

  95. for($i=$this->totalPagesCount-3 1;$i<=$this->totalPagesCount;$ i )//功能1

  96. {
  97. $str .="$i"."n " ;

  98. }

  99. }elseif($this->pageIndex<=5) // 5 >= 当前页 >= 3
  100. {
  101. for($i=1;$i<=($this->pageIndex 1);$i )
  102. {
  103. if($i==$this->pageIndex)
  104. { $currnt =" class='current'";}
  105. else
  106. { $currnt="" }
  107. $str .="$i"."n" ;

  108. }

  109. $str.=""."n";

  110. for($i=$this->totalPagesCount-3 1;$i<=$this-> ;totalPagesCount;$i )//功能1

  111. {
  112. $str .="$i "."n" ;
  113. }

  114. }elseif(5<$this->pageIndex && $this->pageIndex<=$this->totalPagesCount-5 ) //当前页大于5,同时小于总页数-5

  115. {

  116. for($i=1;$i<= 3;$i )

  117. {
  118. $str .="$i"."n" ;
  119. }
  120. $str.="……";
  121. for($i=$this->pageIndex-1 ;$i<=$this->pageIndex 1 && $i<=$this->totalPagesCount-5 1;$i )
  122. {
  123. if($i==$this->pageIndex)
  124. { $currnt=" class='current'";}
  125. else
  126. { $currnt=""; }
  127. $str .="$i"."n" ;
  128. }
  129. $str.="……";

  130. for($i=$this ->totalPagesCount-3 1;$i<=$this->totalPagesCount;$i )

  131. {
  132. $str .="$i"."n" ;

  133. }

  134. }else
  135. {

  136. < p>for($i=1;$i<=3;$i )
  137. {
  138. $str .="$i"."n" ;
  139. }
  140. $str.="……"."n";

  141. for($ i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i )//功能1

  142. {
  143. if($i==$this->pageIndex)
  144. { $currnt=" class='current'";}
  145. else
  146. { $currnt=""; }
  147. $str .="$i"."n" ;
  148. }

  149. }
  150. }

  151. /*

  152. 除首末后 页面分页逻辑结束
  153. */
  154. //下一页 末页
  155. if($this->pageIndex==$this->totalPagesCount)
  156. {
  157. $str .="n"."下一页"."n" ;
  158. $str .="末页"."n";
  159. }else
  160. {
  161. $str .="n"."下一页 "."n";
  162. $str .="末页 "."n";
  163. }

  164. $str .= "

";
  • $str 반환;
  • }

  • /**

  • * 인스턴스 가져오기
  • * @return
  • */
  • // static public function getInstance() {
  • // if (is_null ( self::$_instance )) {
  • // self::$_instance = 새 호출기 ();
  • // }
  • // return self::$_instance;
  • // }

  • }
  • ?>

  • 复主代码

    3) php分页样式文件 pager.css:

    1. body,html{ padding:0px; 여백:0px; 색상:#333333; 글꼴 계열:"宋体",Arial,Lucida,Verdana,Helvetica,sans-serif; 글꼴 크기:12px; 줄 높이:150%;}

    2. h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0; 패딩:0; 테두리:없음; 목록 스타일 유형:없음;}

    3. /**첫 페이지 매김 스타일**/

    4. .페이지 매기기 {margin:10px 0 0;padding:5px 0;text-align: 맞아맞아; 높이:20px; 줄 높이:20px; 글꼴 패밀리:Arial, Helvetica, sans-serif,"宋体";}
    5. .Pagination a {margin-left:2px;padding:2px 7px 2px;}
    6. .Pagination .dot{ border:medium none; padding:4px 8px}
    7. .Pagination a:link, .Pagination a:visited {border:1px solid #dedede;color:#696969;text-꾸밈:none;}
    8. .Pagination a:hover, .Pagination a:active, .Pagination a.current:link, .Pagination a.current:visited {border:1px solid #dedede;color:#fff; 배경색:#ff6600; 배경 이미지:없음; border:#ff6600 solid 1px;}
    9. .Pagination .selectBar{ border:#dedede solid 1px; 글꼴 크기:12px; 너비:95px; 높이:21px; 줄 높이:21px; 여백-왼쪽:10px; 디스플레이:인라인}
    10. .페이지 매김 a.tips{_padding:4px 7px 1px;}

    复代码


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