万能的php分页类

2025-05-29 0 93

本文实例为大家分享了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

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125
<?php

/*核心:首页、上一页、下一页、尾页的url*/

/*超全局$_SERVER*/

$page = new Page(5,60);

var_dump($page->allUrl());

class Page{

// 每页显示的个数

protected $number;

// 一共有多少数据

protected $totalCount;

// 当前页

protected $page;

// url

protected $url;

public function __construct($number,$totalCount){

$this->number= $number;

$this->totalCount = $totalCount;

//得到总页数

$this->totalPage = $this->getTotalPage();

//得到当前页数

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

//得到URL

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

echo $this->url;

}

/*得到总页数并向上取整*/

protected function getTotalPage(){

return ceil($this->totalCount/$this->number);

}

/**/

protected function getPage(){

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

$page=1;

}elseif ($_GET['page'] > $this->totalPage){

$page = $this->totalPage;

}elseif ($_GET["page"]<1){

$page = 1;

}else{

$page = $_GET['page'];

}

return $page;

}

protected function getUrl(){

//得到协议名

$scheme = $_SERVER['REQUEST_SCHEME'];

//得到主机名

$host= $_SERVER['SERVER_NAME'];

//得到端口号

$port = $_SERVER['SERVER_PORT'];

//得到路径和请求字符串

$url = $_SERVER['REQUEST_URI'];

/*中间做处理,要将page=5等这种字符串拼接URL

中,所以如果原来的url中有page这个参数,我们首先

需要将原来的page参数给清空*/

$urlArray = parse_url($url);

// var_dump($urlArray);

$path = $urlArray['path'];

if (!empty($urlArray['query'])){

//将query中的值转化为数组

parse_str($urlArray['query'],$array);

//如果他有page就将它删掉

unset($array['page']);

//将关联数组转化为query

$query = http_build_query($array);

//不为空的话就与path连结

if ($query != ''){

$path = $path.'?'.$query;

}

}

return 'http://'. $host.':'.$port.$path;

}

protected function setUrl($str){

if (strstr($this->url, '?')){

$url = $this->url.'&'.$str;

}else{

$url = $this->url.'?'.$str;

}

return $url;

}

/*所有的url*/

public function allUrl(){

return [

'first' => $this->first(),

'next' => $this->next(),

'prev'=> $this->prev(),

'end'=> $this->end(),

];

}

/*首页*/

public function first(){

return $this->setUrl('page=1');

}

/*下一页*/

public function next(){

//根据当前page得带下一页的页码

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

$page = $this->totalPage;

}else{

$page = $this->page+1;

}

return $this->setUrl('page='.$page);

}

/*上一页*/

public function prev(){

//根据当前page得带下一页的页码

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

$page = 1;

}else{

$page = $this->page-1;

}

return $this->setUrl('page='.$page);

}

/*尾页*/

public function end(){

return $this->setUrl('page='.$this->totalPage);

}

/*limit 0,5*/

public function limit(){

$offset = ($this->page-1)*$this->number;

return $offset.','.$this->number;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 万能的php分页类 https://www.kuaiidc.com/94429.html

相关文章

发表评论
暂无评论