首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
好用的PHP分页类
时间:
2015-06-23 11:31:43
阅读:
124
评论:
0
收藏:
0
[点我收藏+]
标签:
<?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
?
$_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‘
].
‘?‘
.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
;
}
}
?>
使用分页
<?php
$_page
=
new
Page(
$_total
,
$_pagesize
);
//其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.
?>
好用的PHP分页类
标签:
原文地址:http://www.cnblogs.com/qhorse/p/4594759.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!