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 23 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
php适配器模式介绍
Aug 14 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP实现简单汉字验证码
Jul 28 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
php JWT在web端中的使用方法教程
Sep 06 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/10/09 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
PHP7 标准库修改
2021/03/09 PHP
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
Python自动抢红包教程详解
2019/06/11 Python
解释一下钝化(Swap out)
2016/12/26 面试题
土木工程应届生自荐信
2013/09/24 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
2014年招生工作总结
2014/11/26 职场文书
个人事迹材料范文
2014/12/29 职场文书
绵山导游词
2015/02/05 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python