ホームページ  >  記事  >  バックエンド開発  >  複数のページング メソッドを備えた PHP ページング クラス

複数のページング メソッドを備えた PHP ページング クラス

WBOY
WBOYオリジナル
2016-07-25 09:00:34718ブラウズ
  1. Class PAGE {

  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 $pages; //ページの総数
  14. private $url; //ページURL
  15. private $Aque; //URLパラメータ
  16. */
  17. public function PAGE($total, $pageNum, $url='?'){
  18. $this->total = $total; //レコードの総数
  19. $this->pageNum = $pageNum; //ページごとの表示番号
  20. $this->url = $this->StrSift($url); //$url の値が正当かどうかを判断します。
  21. $this->Aque = $_GET; /ページによって元々渡されたパラメータ .
  22. $this->page = $this->StrSift($_GET['page']); //現在のページの GET (グローバル変数) モードのパラメータ、現在のページ番号。 $this->page = is_numeric( $this->page) ? $this->page : 1; // 現在のページ番号が数値でない場合は 1 に設定します
  23. $this->pages = ceil($total/$pageNum); //総ページ数
  24. if($this->pagepage = 1; //ページ番号が1未満の場合は設定1.
  25. //if($this->page>$this->pages) $this->page = $this->pages; //ページ番号が最大ページ番号より大きい場合、最大ページ番号に設定します。
  26. }
  27. /********************
  28. * ページング方法
  29. *******************/
  30. function StartPage($str, $view=true, $jump=true){
  31. if($view==true) $PageStr 。 = $this->GetCount(); //ページング統計
  32. if ($str=='str') $PageStr .= $this->GetPageStr(); //文字ページング形式を選択
  33. else $PageStr . = $this->GetPageNum(); //数値ページング形式を選択します
  34. if($jump==true) $PageStr .= $this->JumpSelect() //Jump
  35. return $PageStr;
  36. }< ;/p>
  37. /********************************************

  38. * 統計を表示します: 5。合計レコード数 ページ: 2/3
  39. **************************************** * ***********/
  40. function GetCount(){
  41. $CountStr = "Total" $this->total ."レコード ページ:".$this->page."/". $this->pages."  ";
  42. return $CountStr;
  43. }

  44. /************************************************

  45. * ページネーション形式 1 : 最初のページ 前のページ 次のページ 最後のページ
  46. ************************************ **** ********/
  47. function GetPageStr(){
  48. $url = $ this->url; // URL を取得します
  49. // URL パラメータを処理します。配列のキーは URL 変数で、配列の値はURL 変数の値。
  50. foreach($this->Aque as $key => $val){
  51. switch($key){
  52. case "page":
  53. $Next = $val + 1;
  54. $ Prev = $val - 1;
  55. ブレーク;
  56. デフォルト:
  57. $Sque .= "&$key =".$this->StrSift($val);
  58. }
  59. }
  60. if($Next==0) $ Next=2;
  61. //ホームページの前のページ
  62. switch($this->page){
  63. case $this->page<=1:
  64. $pagestr .= "ホームページ ";
  65. $pagestr . = "前のページ ";
  66. ブレーク;
  67. デフォルト:
  68. $pagestr . = "ホームページ   ;";
  69. $pagestr .= "前のページ  ";
  70. }
  71. //次のページ最後のページ
  72. switch($this->page){
  73. case $this->page>=$this->pages:
  74. $pagestr .= "次のページ  ";
  75. $pagestr .= "最後のページ  ";
  76. ブレーク;
  77. デフォルト:
  78. $pagestr .= "次のページ   ";
  79. $pagestr .= "< a href='".$url."?page=$this->pages$Sque'>最後のページ  ";
  80. }
  81. / /ページング文字列を返します。
  82. return $ pagestr;
  83. }

  84. /*************************************************** * *******

  85. * ページング形式は次のとおりです: 合計 4307 レコード ページ: 1/72 1 2 3 4 5 6 7 8 9 10
  86. ************ ****** *******************************************/
  87. function GetPageNum(){
  88. $url = $this->url;
  89. //URL パラメータを処理します。配列のキーはURL 変数、配列の値は URL 変数の値です。
  90. foreach($this->Aque as $key => $val){
  91. switch($key){
  92. case $key!="page ":
  93. $Sque . = "&$key=".$this->StrSift($val);
  94. }
  95. }
  96. switch($this->pages){
  97. // 総ページ数が大きくなります12 ページより:
  98. case $this-> ;pages>12:
  99. // ページ番号の前: < <<
  100. switch($this->page){
  101. case $this->page>1 :
  102. $pagestr .= "< ";
  103. $pagestr .= "<< ";
  104. break;
  105. default:
  106. $pagestr .= "< ";
  107. $pagestr . = "<< ";
  108. }
  109. //ページング番号: 1 2 3 4 5 6 左側に 6 つのページング リンクがあり、右側に 6 つのページング リンクがあります。現在のページ番号の
  110. for($i=$this->page -6; $i<=$this->page+6; $i++){
  111. if($i>$this->pages ) Break;
  112. if($i==$this->page) $ pagestr .= $i." ";
  113. elseif($i>=1) $pagestr .= "$i< /a> ";
  114. }
  115. // ページ番号の後: > >>
  116. switch($this->page) {
  117. case $this->page<$this->pages:
  118. $pagestr .= ">> ";
  119. $pagestr .= " > ";
  120. ブレーク;
  121. デフォルト:
  122. $pagestr .= "> ";
  123. $pagestr .= ">> ";
  124. }
  125. ブレーク;
  126. デフォルト:
  127. //総ページ数は 12 ページ未満です:
  128. for($i=1 ; $i<=$this->pages; $i++){
  129. switch($i){
  130. case $i= =$this->page:
  131. $pagestr .= $i." ";
  132. Break;
  133. デフォルト:
  134. $pagestr .= "$i ";
  135. }
  136. }
  137. }
  138. //ページング文字列を返します。
  139. return $pagestr;
  140. }
  141. /**************************
  142. * BEGIN
  143. ****************** ジャンプページを定義します。 **** ******/
  144. function JumpSelect( ){
  145. $url = $this->url;
  146. // URL パラメーターを処理します: 配列のキーは URL 変数であり、配列の値は URL 変数の値です。
  147. foreach($this ->Aque as $key => $val){
  148. if($key != "ページ") $Sque .= "&$key=".$this->StrSift($val);
  149. }
  150. $SelectStr = "nn";
  151. // ページング文字列を返します。
  152. return $SelectStr;
  153. }

  154. /***************************************

  155. * 特殊文字をフィルターします。
  156. ******* ***** ************************/
  157. private function StrSift($str){
  158. $str = str_replace(""","",$str);
  159. $str = str_replace( "'","",$str);
  160. $str = str_replace("[url= file://%22,%22%22,$str/]\","",$str[/url]) ;
  161. $str = str_replace("/","",$str);
  162. $str = str_replace(":","",$str);
  163. $str = str_replace("?","",$str ); //削除すると「??」になります
  164. $str = str_replace("> ;","",$str);
  165. $str = str_replace("<","",$str);
  166. $ str = str_replace("%","",$str);
  167. $str = str_replace ("*","",$str);
  168. $str = str_replace("&","",$str);
  169. $str = str_replace(".","",$str);
  170. return $str ;
  171. }

  172. //クラス終了

  173. }
  174. ?>

コードをコピー

興味のある方は、次の記事も参照してください。 優れたPHPページングクラスコード 実用的な php ページング クラス

ページネーションスタイルシート:

  1. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。