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 相关文章推荐
关于页面优化和伪静态
Oct 11 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
php不用正则验证真假身份证
Nov 06 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
php微信开发之音乐回复功能
Jun 14 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
PHP数组与字符串互相转换实例
May 05 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在字符串中查找另一个字符串
2008/11/19 PHP
php 中的closure用法详解
2017/06/12 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python文件操作类操作实例详解
2014/07/11 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
大学在校生求职信范文
2013/11/21 职场文书
英文感谢信格式
2015/01/21 职场文书