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 开源框架22个简单简介
Aug 24 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
ThinkPHP控制器详解
Jul 27 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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中mkdir函数用法实例分析
2014/11/15 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
php随机抽奖实例分析
2015/03/04 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
javascript算法学习(直接插入排序)
2011/04/12 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
js实现表格数据搜索
2020/08/09 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Mac 上切换Python多版本
2017/06/17 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python pandas库的安装和创建
2019/01/10 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python动态视频下载器的实现方法
2019/09/16 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
李敖北大演讲稿
2014/05/24 职场文书
驻村工作先进事迹
2014/08/14 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
盗窃案辩护词
2015/05/21 职场文书
同意报考证明
2015/06/17 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书