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生成静态页
Nov 25 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
PHP 简单日历实现代码
Oct 28 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
Jan 11 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
laravel5.6实现数值转换
Oct 23 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常用的三种设计模式汇总
2016/08/28 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python贪吃蛇游戏代码
2020/04/18 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
护士求职自荐信范文
2014/03/19 职场文书
学习雷锋标语
2014/06/25 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
MySQL约束超详解
2021/09/04 MySQL