本文实例为大家分享了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; } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。