>백엔드 개발 >PHP 튜토리얼 >Google 페이징 스타일을 모방하는 PHP 일반 페이징 클래스 코드

Google 페이징 스타일을 모방하는 PHP 일반 페이징 클래스 코드

WBOY
WBOY원래의
2016-07-25 08:52:371129검색
  1. /**

  2. ** 일반 PHP 페이징 클래스. (Google 스타일 모방)
  3. ** 총 레코드 수와 페이지당 표시 수라는 두 가지 매개변수만 제공하면 됩니다. (자세한 설명은 첨부합니다..)
  4. ** URL은 따로 명시하지 않아도 프로그램에서 링크가 생성됩니다. 검색 결과를 페이징하는 데 편리합니다.
  5. ** 양식은 쿼리 및 삭제와 같은 작업 중에 URL 매개변수가 손실되지 않도록 보장하는 GET 메서드를 사용하여 제출됩니다.
  6. **/
  7. 클래스 호출기{
  8. //IE 주소 열 주소
  9. var $url;//총 레코드 수
  10. var $countall;//총 페이지 수
  11. var $page>//페이징 번호 링크
  12. var $thestr;
  13. //홈페이지, 이전 페이지 링크
  14. var $backstr
  15. //마지막 페이지, 다음 페이지 링크
  16. var $nextstr;//현재 페이지 번호
  17. var $pg;//각 페이지에 표시되는 레코드 수
  18. var $countlist
  19. //페이지 넘기기 스타일
  20. var $style
  21. //이 클래스를 인스턴스화하는 생성자
  22. function Pager($countall,$countlist,$style="page"){
  23. 일 때 이 기능을 자동으로 실행합니다.//레코드 개수와 각 페이지에 표시되는 개수를 합칠 수 없을 때 페이지 개수 나머지로 1이 추가됩니다.
  24. $this->countall = $countall
  25. $this->countlist = $countlist
  26. $this->style=$style; 🎜>if ($this->countall% $this->countlist!=0){
  27. $this->page=sprintf("%d",$this->countall/$this-> ;countlist) 1
  28. }else{
  29. $this->page=$this->countall/$this->countlist
  30. }

  31. ;$this->pg=$_GET[ "pg"];//지정되지 않은 경우 pg가 1페이지에서 시작하도록 보장

  32. if (!ereg("^[1-9][0-9 ]*$",$this ->pg) || 비어 있음($this->pg)){
  33. $this->pg=1;
  34. }
  35. //페이지 수가 초과되었습니다. 최대 범위, 최대값을 취하세요.
  36. if ($this->pg>$this->page){
  37. $this->pg=$this->page; 🎜>//현재 URL을 가져옵니다. 구체적인 구현은 하단의 함수 엔터티를 참조하세요.
  38. $this->url = Pager::getUrl()
  39. //잘못된 형식의 페이지 번호를 올바른 페이지 번호로 바꾸세요
  40. if( isset($_GET[" pg"]) && $_GET["pg"]!=$this->pg){
  41. $this->url=str_replace("?pg=".$_GET[" pg"],"? pg=$this->pg",$this->url);
  42. $this->url=str_replace("&pg=".$_GET["pg"]," &pg=$this-> ;pg",$this->url);
  43. }
  44. //12345와 같은 숫자 형식으로 페이지 매김을 생성합니다.
  45. if ($this->page<=10){
  46. for ($i=1;$i<$this->1페이지;$i ){
  47. $this->thestr =$this->thestr.Pager::makepg($i,$this->pg);
  48. }
  49. }else{
  50. if ($this->pg<=5){
  51. for ($i=1;$i<10;$i ){
  52. $this ->thestr=$this->thestr.Pager::makepg($i,$this->pg);
  53. }
  54. }else{
  55. if (6 $this->pg<=$this->page){
  56. for ($i=$this->pg-4;$ i<$this->pg 6;$i ){
  57. $this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
  58. }
  59. }else{
  60. for ($i=$this->pg-4;$i<$this->1페이지;$i ){
  61. $this-> thestr=$this->thestr.Pager::makepg($i,$this->pg);
  62. }

  63. }

  64. }
  65. }
  66. //生成上页下页等文字链接
  67. $this->backstr = 호출기: :gotoback($this->pg);
  68. $this->nextstr = Pager::gotonext($this->pg,$this->page);
  69. //echo (" 共".$this->countall." 条,每页".$this->countlist."条,共".$this->page."页".$ this->backstr.$this->thestr.$this->nextstr);
  70. }
  71. //生成数字分页的辅助函数
  72. function makepg($i,$pg){
  73. if ($i==$pg){
  74. return " ".$i."";
  75. }else{
  76. return " ".$i."";
  77. }
  78. }
  79. //生成上一页等信息적函数
  80. function gotoback($pg){
  81. if ($pg-1>0){
  82. return $this ->gotoback=" 首页< /a> 上一页";
  83. }else{
  84. return $this->gotoback="首页 上一页 ";
  85. }
  86. }
  87. //生成下一页等信息적函数
  88. function gotonext($pg,$page){
  89. if ($pg < $page){
  90. return " 下一页尾页" ;
  91. }else{
  92. return " 下一页 尾页";
  93. }
  94. } bbs.it-home.org
  95. //处理url中$pg적방법,사용于自动生成pg=x
  96. 함수 replacementpg($url,$flag,$i) {
  97. if ($flag == 1){
  98. $temp_pg = $this->pg;
  99. return str_replace("pg=".$temp_pg,"pg=".($this->pg 1),$url);
  100. }else if($flag == 2) {
  101. $temp_pg = $this->pg;
  102. return str_replace("pg=".$temp_pg,"pg=".($this->pg-1),$url);
  103. }else if($flag == 3) {
  104. $temp_pg = $this->pg;
  105. return str_replace("pg=".$temp_pg,"pg=1",$url);
  106. }else if($flag == 4){
  107. $temp_pg = $this->pg;
  108. return str_replace("pg=".$temp_pg,"pg=".$this->page,$url);
  109. }else if($flag == 5){
  110. $temp_pg = $this->pg;
  111. return str_replace("pg=".$temp_pg,"pg=".$i,$url);
  112. }else{
  113. $url 반환;
  114. }
  115. }
  116. //获得当前URL적 방법
  117. function getUrl(){
  118. $url="http://".$_SERVER["HTTP_HOST"];
  119. if(isset($_SERVER["REQUEST_URI"])){
  120. $url.=$_SERVER["REQUEST_URI"];
  121. }else{
  122. $url.=$_SERVER["PHP_SELF"];
  123. if(!empty($_SERVER["QUERY_STRING"])){
  124. $url.="?".$_SERVER["QUERY_STRING"];
  125. }
  126. }
  127. //현재 URL里加入pg=x字样
  128. if (!ereg("(pg=|PG=|pG=|Pg=)", $url) ){
  129. if (!strpos($url,"?")){
  130. $url = $url."?pg=1";
  131. }else{
  132. $url = $url."&pg=1";
  133. }
  134. }
  135. return $url;
  136. }
  137. }
  138. ?>

复代码


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