ホームページ > バックエンド開発 > PHPチュートリアル > PHP实现简单实用的分页类代码_php技巧

PHP实现简单实用的分页类代码_php技巧

WBOY
リリース: 2016-05-16 19:54:41
オリジナル
1008 人が閲覧しました

本文实例讲述了PHP实现简单实用的分页类。分享给大家供大家参考,具体如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

<&#63;php

  class Page {

     private $total;   //总记录

     private $pagesize//每页显示多少条

     private $limit;     //limit

     private $page;      //当前页码

     private $pagenum;   //总页码

     private $url;      //地址

     private $bothnum;   //两边保持数字分页的量

   //构造方法初始化

   public function __construct($_total, $_pagesize) {

     $this->total = $_total &#63; $_total : 1;

     $this->pagesize = $_pagesize;

     $this->pagenum = ceil($this->total / $this->pagesize);

     $this->page = $this->setPage();

     $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";

     $this->url = $this->setUrl();

     $this->bothnum = 2;

   }

   //拦截器

   private function __get($_key) {

     return $this->$_key;

   }

   //获取当前页码

   private function setPage() {

     if (!empty($_GET['page'])) {

        if ($_GET['page'] > 0) {

          if ($_GET['page'] > $this->pagenum) {

             return $this->pagenum;

          } else {

             return $_GET['page'];

          }

        } else {

          return 1;

        }

     } else {

        return 1;

     }

   }

   //获取地址

   private function setUrl() {

     $_url = $_SERVER["REQUEST_URI"];

     $_par = parse_url($_url);

     if (isset($_par['query'])) {

        parse_str($_par['query'],$_query);

        unset($_query['page']);

        $_url = $_par['path'].'&#63;'.http_build_query($_query);

     }

     return $_url;

   }   //数字目录

   private function pageList() {

     for ($i=$this->bothnum;$i>=1;$i--) {

      $_page = $this->page-$i;

      if ($_page < 1) continue;

        $_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';

     }

     $_pagelist .= ' <span class="me">'.$this->page.'</span> ';

     for ($i=1;$i<=$this->bothnum;$i++) {

      $_page = $this->page+$i;

        if ($_page > $this->pagenum) break;

        $_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';

     }

     return $_pagelist;

   }

   //首页

   private function first() {

     if ($this->page > $this->bothnum+1) {

        return ' <a href="'.$this->url.'">1</a> ...';

     }

   }

   //上一页

   private function prev() {

     if ($this->page == 1) {

        return '<span class="disabled">上一页</span>';

     }

     return ' <a href="'.$this->url.'&page='.($this->page-1).'">上一页</a> ';

   }

   //下一页

   private function next() {

     if ($this->page == $this->pagenum) {

        return '<span class="disabled">下一页</span>';

     }

     return ' <a href="'.$this->url.'&page='.($this->page+1).'">下一页</a> ';

   }

   //尾页

   private function last() {

     if ($this->pagenum - $this->page > $this->bothnum) {

        return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'">'.$this->pagenum.'</a> ';

     }

   }

   //分页信息

   public function showpage() {

     $_page .= $this->first();

     $_page .= $this->pageList();

     $_page .= $this->last();

     $_page .= $this->prev();

     $_page .= $this->next();

     return $_page;

   }

 }

&#63;>

ログイン後にコピー

分页样式如下图所示:

使用说明:

1

2

3

4

<&#63;php

  $_page = new Page($_total,$_pagesize);

  //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.

&#63;>

ログイン後にコピー

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート