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 Class 文章
Apr 04 PHP
PHP define函数的使用说明
Aug 27 PHP
如何用php获取文件名后缀
Jun 09 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
WHOIS类的修改版
2006/10/09 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python书籍信息爬虫实例
2018/03/19 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
python求绝对值的三种方法小结
2019/12/04 Python
python打包多类型文件的操作方法
2020/09/21 Python
Python urllib3软件包的使用说明
2020/11/18 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
关于逃课的检讨书
2014/01/23 职场文书
应届大学生自荐书
2014/06/17 职场文书
相亲活动方案
2014/08/26 职场文书
公民授权委托书范本
2014/09/17 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
从事会计工作年限证明
2015/06/23 职场文书
车辆管理制度范本
2015/08/05 职场文书
电力培训学习心得体会
2016/01/11 职场文书
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏