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实现读取和编写XML DOM代码
Apr 07 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
php递归删除指定文件夹的方法小结
Apr 20 PHP
curl和libcurl的区别简介
Jul 01 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
php基于session锁防止阻塞请求的方法分析
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
一个好用的分页函数
2006/11/16 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php array_walk() 数组函数
2011/07/12 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
python2.7实现邮件发送功能
2018/12/12 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
幼儿园毕业教师感言
2014/02/21 职场文书
小学教师培训方案
2014/06/09 职场文书
《比的意义》教学反思
2016/02/18 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis