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中实现进程间通讯
Oct 09 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
php处理restful请求的路由类分享
Feb 27 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
php截取字符串函数分享
Feb 02 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
php如何获取文件的扩展名
Oct 28 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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 json_encode奇怪问题说明
2011/09/27 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
js 动态选中下拉框
2009/11/26 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
Python KMeans聚类问题分析
2018/02/23 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
前台接待岗位职责
2013/12/03 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
书法培训心得体会
2014/01/05 职场文书
中学生班主任评语
2014/01/30 职场文书
运动会通讯稿300字
2014/02/02 职场文书
库房管理员岗位职责
2015/02/12 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书