PHP实现的分页类定义与用法示例
发布时间 - 2026-01-11 02:11:32 点击率:次本文实例讲述了PHP实现的分页类定义与用法。分享给大家供大家参考,具体如下:
<?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.'" rel="external nofollow" rel="external nofollow" >'.$_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.'" rel="external nofollow" rel="external nofollow" >'.$_page.'</a> ';
}
return $_pagelist;
}
//首页
private function first() {
if ($this->page > $this->bothnum+1) {
return ' <a href="'.$this->url.'" rel="external nofollow" >1</a> ...';
}
}
//上一页
private function prev() {
if ($this->page == 1) {
return '<span class="disabled">上一页</span>';
}
return ' <a href="'.$this->url.'&page='.($this->page-1).'" rel="external nofollow" >上一页</a> ';
}
//下一页
private function next() {
if ($this->page == $this->pagenum) {
return '<span class="disabled">下一页</span>';
}
return ' <a href="'.$this->url.'&page='.($this->page+1).'" rel="external nofollow" >下一页</a> ';
}
//尾页
private function last() {
if ($this->pagenum - $this->page > $this->bothnum) {
return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'" rel="external nofollow" >'.$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相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP网络编程技巧总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# PHP
# 分页类
# ThinkPHP使用心得分享-分页类Page的用法
# ThinkPHP分页类使用详解
# PHP通用分页类page.php[仿google分页]
# 高效mongodb的php分页类(不使用skip)
# 两款万能的php分页类
# PHP 分页类代码(简单好用型)
# PHP ajax 分页类代码
# 一个简单且很好用的php分页类
# php mysql数据库操作分页类
# PHP 分页类(模仿google)-面试题目解答
# 仿dedecms下拉分页样式修改的thinkphp分页类实例
# php 分页类 扩展代码
# 分页
# 下一页
# 上一页
# 程序设计
# 每页
# 操作技巧
# 相关内容
# 感兴趣
# 给大家
# 尾页
# 所示
# 更多关于
# 首页
# 所述
# 面向对象
# 如下图
# 条数
# 编程技巧
# 拦截器
# 讲述了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
如何在建站主机中优化服务器配置?
Laravel如何实现数据库事务?(DB Facade示例)
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
三星、SK海力士获美批准:可向中国出口芯片制造设备
UC浏览器如何设置启动页 UC浏览器启动页设置方法
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
制作旅游网站html,怎样注册旅游网站?
如何用AWS免费套餐快速搭建高效网站?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Python自动化办公教程_ExcelWordPDF批量处理案例
高端网站建设与定制开发一站式解决方案 中企动力
php结合redis实现高并发下的抢购、秒杀功能的实例
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
JavaScript如何操作视频_媒体API怎么控制播放
如何基于云服务器快速搭建网站及云盘系统?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
JS中对数组元素进行增删改移的方法总结
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在新浪SAE免费搭建个人博客?
如何批量查询域名的建站时间记录?
详解Huffman编码算法之Java实现
如何基于云服务器快速搭建个人网站?
青岛网站建设如何选择本地服务器?
Laravel如何创建自定义Facades?(详细步骤)
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel如何实现API资源集合?(Resource Collection教程)
如何快速查询网站的真实建站时间?
装修招标网站设计制作流程,装修招标流程?
Java垃圾回收器的方法和原理总结
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
网站制作软件免费下载安装,有哪些免费下载的软件网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
中国移动官方网站首页入口 中国移动官网网页登录
Laravel怎么为数据库表字段添加索引以优化查询
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何构建满足综合性能需求的优质建站方案?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在阿里云虚拟主机上快速搭建个人网站?

