php实现分页工具类分享


Posted in PHP onJanuary 09, 2014

代码:

    /**
    * 把中间的看成一个可以滑动的固定长度的尺子
    *
    * 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,
    * 然后$this->_totalPages就是一个给定长度的木块,尺子在这个
    * 木块上滑动。情况两种:
    * 1. 尺子长度大于木块长度,那么就直接输出所有的页码;
    * 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页
    * 数的起始点——$start, $end;
    * @Access protected
    * @Return void
    * @Exception none
    */
    protected function _getShowPageNumber()
    {
    $pageHtml = '';
    //找到$start点
    if($this->_curPage - 2 > 1) {
    $start = $this->_curPage - 2;
    } else {
    $start = 1;
    }
    //找到$end 点
    $end = $start + $this->_totalShowPages;
    if($end >= $this->_totalPages) {
    $end = $this->_totalPages;
    $start = $end - $this->_totalShowPages; //保证页面显示的长度为$this->_totalShowPages
    }
    if($start != 1) {
    $pageHtml .= $this->_getPageHtml(1);
    $preMore = $this->_curPage - $this->_totalShowPages;
    if($preMore < 1) {
    $preMore = 1;
    }
    $pageHtml .= $this->_getMorePageHtml($preMore);
    }
    for($page = $start; $page < $end; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    if($end != $this->_totalPages) {
    $pageHtml .= $this->_getMorePageHtml($end);
    }
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);    return $pageHtml;
    }
 

第一种老想法的代码实现:

    /**
    * 一步步的来
    *
    * @desc
    *
    * @Access protected
    * @Return void
    * @Exception none
    */
    protected function _getShowPageNumberTwo()
    {
    if($this->_curPage < $this->_totalShowPages) {
    for($page = 1; $page < $this->_totalShowPages; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    $pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
    } else {
    $pageHtml .= $this->_getNormalPageHtml(1);
    if($this->_curPage == $this->_totalShowPages) {
    $pageHtml .= $this->_getMorePageHtml(1);
    } else {
    $pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);
    }
    if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {
    for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    } else {
    $start = $this->_curPage - 2;
    $end = $this->_curPage + $this->_totalShowPages - 2;
    for($page = $start; $page < $end; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    $pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
    }
    }    return $pageHtml;
    }
   
PHP 相关文章推荐
两个强悍的php 图像处理类1
Jun 15 PHP
apache php模块整合操作指南
Nov 16 PHP
php中url函数介绍及使用示例
Feb 13 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
详解php中 === 的使用
Oct 24 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
codeigniter框架批量插入数据
Jan 09 #PHP
eaglephp使用微信api接口开发微信框架
Jan 09 #PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 #PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 #PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 #PHP
PHP修改session_id示例代码
Jan 08 #PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 #PHP
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
vue中mint-ui的使用方法
2018/04/04 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python实现自动登录百度空间的方法
2017/06/10 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python中整数的缓存机制讲解
2019/02/16 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
实习自我鉴定模板
2013/09/28 职场文书
法律专业应届本科毕业生求职信
2013/10/25 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
访谈节目策划方案
2014/05/15 职场文书
应届大专生求职信
2014/06/26 职场文书
平面设计专业求职信
2014/08/09 职场文书
助学感谢信范文
2015/01/21 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书