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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
PHP的SQL注入过程分析
Jan 06 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
PHP之密码加密的几种方式
Jul 29 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
php提交post数组参数实例分析
Dec 17 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
php获取微信共享收货地址的方法
Dec 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
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
光电信息专业应届生求职信
2013/10/07 职场文书
30年同学聚会感言
2014/01/30 职场文书
成立公司计划书
2014/05/07 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书