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的开发框架的现状和展望
Mar 16 PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
解析php中反射的应用
Jun 18 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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验证手机号码
2015/11/11 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
Javascript事件实例详解
2013/11/06 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
使用javascript插入样式
2016/03/14 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
django 多数据库配置教程
2018/05/30 Python
python语音识别实践之百度语音API
2018/08/30 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
建筑专业自荐信
2013/10/18 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
社区好人好事材料
2014/12/26 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
Python实现照片卡通化
2021/12/06 Python
windows系统安装配置nginx环境
2022/06/28 Servers