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 相关文章推荐
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
php适配器模式介绍
Aug 14 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
php四种基础算法代码实例
Oct 29 PHP
PHP处理Oracle的CLOB实例
Nov 03 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 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引用(&amp;)
2014/09/04 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
python显示天气预报
2014/03/02 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python命令行解析模块详解
2018/02/01 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
三查三看党性分析材料
2014/02/18 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
工作失职检讨书范文
2015/05/05 职场文书
休假证明书
2015/06/24 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
Python基础之条件语句详解
2021/06/16 Python
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
nginx容器方式反向代理实战
2022/04/18 Servers
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库