ホームページ  >  記事  >  バックエンド開発  >  PHPページングクラスのソースコードと呼び出し例

PHPページングクラスのソースコードと呼び出し例

WBOY
WBOYオリジナル
2016-07-25 08:52:36802ブラウズ
  1. class Page {
  2. private $total; //合計レコード
  3. private $pagesize;//各ページに表示されるレコードの数
  4. private $limit; ; //現在のページ番号
  5. private $pagenum; //合計ページ番号
  6. private $url; //両側で保持されるデジタルページングの量
  7. //コンストラクターメソッドの初期化
  8. __construct($_total, $_pagesize) {
  9. $this->total = $_total ? $_total : 1;
  10. $this->pagenum = ceil($this-> ;合計 / $this->pagesize );
  11. $this->page = $this->setPage();
  12. $this->limit = "LIMIT ".($this->page-1) *$this->pagesize." ,$this->pagesize";
  13. $this->url = $this->setUrl();
  14. $this->bothnum = 2;
  15. / /Interceptor
  16. private function __get($ _key) {
  17. return $this->$_key;
  18. }
  19. //現在のページ番号を取得する
  20. private function setPage() {
  21. if (!empty($_GET['page '])) {
  22. if ($_GET ['page'] > 0) {
  23. if ($_GET['page'] > $this->pagenum) {
  24. return $this->pagenum; } else {
  25. return $_GET['page '];
  26. }
  27. } else {
  28. return 1;
  29. }
  30. //アドレスを取得
  31. private function setUrl() {
  32. $_url = $_SERVER["REQUEST_URI" ];
  33. $_par = parse_url($_url);
  34. if (isset($_par['query'])) {
  35. parse_str($_par['query'],$_query) );
  36. unset($_query['page ']);
  37. $_url = $_par['path'].'?'.http_build_query($_query);
  38. return $_url } //デジタルディレクトリ
  39. プライベート関数 pageList() {
  40. for ($ i=$this->bothnum;$i>=1;$i--) {
  41. $_page = $this->page-$i
  42. if ($_page; < 1) 続行;
  43. $_pagelist . = ' ';
  44. }
  45. $_pagelist .= ' '.$this->page.'
  46. for ($i=1;$i<=$ this->bothnum;$i++) {
  47. $_page = $this->page+$i;
  48. if ($_page > $this->pagenum)
  49. $_pagelist .= ' '.$_page.' return $_pagelist }
  50. ; private function first() {
  51. if ($ this->page > $this->bothnum+1) {
  52. return ' 1< ;/a> ...';
  53. }
  54. }
  55. //前のページ
  56. private function prev() {
  57. if ($this->page == 1) {
  58. return '前のページ';
  59. }
  60. return '
  61. }
  62. //次のページ
  63. private function next() {
  64. if ($this->page == $this->pagenum) {
  65. return '次のページ';
  66. }
  67. return ' 次のページ ';
  68. }
  69. //最後のページ
  70. private function last() {
  71. if ($this->pagenum - $this->page > $this-> Bothnum) {
  72. return ' ...'.$this->pagenum.'
  73. }
  74. }
  75. //ページング情報
  76. public function showpage() {
  77. $_page .= $this->pageList( );
  78. $_page .= $this->last();
  79. $_page .= $this->next(); }
  80. }
  81. ?>
  82. コードをコピー
  83. 2、ページングクラス呼び出し:
  84. $_page = new Page($_total,$_pagesize); //$_total はデータセット内のアイテムの総数、$_pagesize は各ページに表示される数です。 ?>
  85. コードをコピー

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