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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
python实现画图工具
2020/08/27 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis