0

0

个人写的一个简单通用分页类

php中文网

php中文网

发布时间:2016-07-25 08:47:57

|

1075人浏览过

|

来源于php中文网

原创

个人学习php所写简单分页类,通用性比较强
  1. /**
  2. * 简单分页类
  3. * @author:phpprince
  4. * @QQ: 8923052
  5. * @date: 2014-04-22 21:08:35
  6. */
  7. class Page{
  8. protected $url; //地址
  9. protected $allnum; //总记录数
  10. protected $current; //当前页码
  11. protected $pagesize; //每页显示多少条记录
  12. protected $postfix; //后缀
  13. protected $style; //显示样式 共3种样式,1 2 3 分别表示前5后4,前3后3,前4后4
  14. public function __construct($url,$allnum,$current,$pagesize=10,$postfix='',$style=1){
  15. $this->url=$url;
  16. $this->allnum=$allnum;
  17. $this->current=$current;
  18. $this->pagesize=$pagesize;
  19. $this->postfix=$postfix;
  20. $this->style=$style;
  21. }
  22. //获取总页数
  23. protected function maxPageNum(){
  24. $max=ceil($this->allnum/$this->pagesize);
  25. //页码超限校正
  26. if($this->current>$max){
  27. $this->current=$max;
  28. }
  29. if($this->current
  30. $this->current=1;
  31. }
  32. return $max;
  33. }
  34. //获得第一页链接完整html str
  35. protected function firstUrl(){
  36. if($this->current!=1)
  37. {
  38. return '首页';
  39. }else{
  40. return '首页';
  41. }
  42. }
  43. //获得上一页链接完整html str
  44. protected function prevUrl(){
  45. if($this->current
  46. $fullurl='上一页';
  47. }else{
  48. $fullurl=$this->url.($this->current-1).$this->postfix;
  49. $fullurl='上一页';
  50. }
  51. return $fullurl;
  52. }
  53. //获得下一页链接完整html str
  54. protected function nextUrl(){
  55. if($this->current>=$this->maxPageNum()){
  56. $fullurl='下一页';
  57. }else{
  58. $fullurl=$this->url.($this->current+1).$this->postfix;
  59. $fullurl='下一页';
  60. }
  61. return $fullurl;
  62. }
  63. //获得最后一页链接完整html str
  64. protected function lastUrl(){
  65. if($this->current>=$this->maxPageNum()){
  66. $fullurl='末页';
  67. }else{
  68. $fullurl=$this->url.$this->maxPageNum().$this->postfix;
  69. $fullurl='末页';
  70. }
  71. return $fullurl;
  72. }
  73. //获得指定页码完整url
  74. protected function getUrl($pageno){
  75. return $this->url.$pageno.$this->postfix;
  76. }
  77. //指定显示样式
  78. protected function getStyle(){
  79. switch($this->style){
  80. case 1:
  81. $before=5;
  82. $after=4;
  83. break;
  84. case 2:
  85. $before=3;
  86. $after=3;
  87. break;
  88. case 3:
  89. $before=4;
  90. $after=4;
  91. break;
  92. default :
  93. $before=5;
  94. $after=4;
  95. }
  96. return array($before,$after);
  97. }
  98. //获得中间URL 1 2 3 4 5 ⑥ 7 8 9 10
  99. protected function getMiddelUrl(){
  100. $max=$this->maxPageNum(); //先获取总页,可校正当前页超限问题
  101. $current=$this->current; //当前页码必须合法,才能保证下面的页码范围一定正确
  102. //得到当前样式
  103. list($before,$after)=$this->getStyle();
  104. $startno=$current-$before; //起始页码
  105. $endno=$current+$after; //终止页码
  106. //为保证输出始终符合要求,在页面不超限前提下,起始页增加,则终止页必须增加,反之同理.
  107. while($endno>$max||$startno
  108. if($endno>$max){ //终止页码超界
  109. $endno--;
  110. if($startno>1){
  111. $startno--;
  112. }
  113. }
  114. if($startno
  115. $startno++;
  116. if($endno
  117. $endno++;
  118. }
  119. }
  120. }
  121. $str=''; //用于保存整个html str
  122. for($i=$startno;$i
  123. $currenturl=$this->getUrl($i);
  124. if($i!=$current){
  125. $str.="{$i}";
  126. }else{
  127. $str.=''.$i.'';
  128. }
  129. }
  130. return $str;
  131. }
  132. //返回完整分页html字符串
  133. public function getPageStr(){
  134. $str='
    '.$this->firstUrl().$this->prevUrl();
  135. $str.=$this->getMiddelUrl();
  136. $str.=$this->nextUrl().$this->lastUrl().'共'.$this->maxPageNum().'页'.$this->allnum.'条
';
  • return $str;
  • }
  • }
  • ?>
  • 复制代码 个人写的一个简单通用分页类


    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

    本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

    927

    2026.02.13

    微博网页版主页入口与登录指南_官方网页端快速访问方法
    微博网页版主页入口与登录指南_官方网页端快速访问方法

    本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

    306

    2026.02.13

    Flutter跨平台开发与状态管理实战
    Flutter跨平台开发与状态管理实战

    本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

    180

    2026.02.13

    TypeScript工程化开发与Vite构建优化实践
    TypeScript工程化开发与Vite构建优化实践

    本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

    29

    2026.02.13

    Redis高可用架构与分布式缓存实战
    Redis高可用架构与分布式缓存实战

    本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

    103

    2026.02.13

    c语言 数据类型
    c语言 数据类型

    本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

    53

    2026.02.12

    雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
    雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

    本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

    17

    2026.02.12

    豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
    豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

    本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

    741

    2026.02.12

    PostgreSQL性能优化与索引调优实战
    PostgreSQL性能优化与索引调优实战

    本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

    92

    2026.02.12

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号