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 array_walk() 数组函数
Jul 12 PHP
php 抽象类的简单应用
Sep 06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
Laravel实现表单提交
May 07 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
php使用curl伪造浏览器访问操作示例
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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
React中的refs的使用教程
2018/02/13 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python 性能优化方法小结
2017/03/31 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python处理“
2019/06/10 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
python中selenium库的基本使用详解
2020/07/31 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
市场开发与营销专业求职信范文
2014/05/01 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
法人授权委托书
2014/09/16 职场文书
2015年档案室工作总结
2015/05/23 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL