php实现分页工具类分享

2015-01-24信息快讯网

本文分享一个php实现的分页工具类,代码内有注释,大家参考使用吧

代码:

    /**
    * 把中间的看成一个可以滑动的固定长度的尺子
    *
    * 把$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;
    }
    

ThinkPHP中I(),U(),$this->post()等函数用法
php中ob_get_length缓冲与获取缓冲长度实例
什么情况下可以不写PHP的闭合标签“?>”
ThinkPHP采用<volist>实现三级循环代码实例
PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
php使用GeoIP库实例
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
浅析application/x-www-form-urlencoded和multipart/form-data的区别
ThinkPHP之getField详解
php数组合并array_merge()函数使用注意事项
ThinkPHP的Widget扩展实例
ThinkPHP CURD方法之data方法详解
ThinkPHP CURD方法之page方法详解
ThinkPHP使用心得分享-分页类Page的用法
php权重计算方法代码分享
codeigniter框架批量插入数据
PHP面向对象之旅:深入理解static变量与方法
解决file_get_contents无法请求https连接的方法
PHP PDOStatement:bindParam插入数据错误问题分析
php file_get_contents抓取Gzip网页乱码的三种解决方法
PHP中ob_start函数的使用说明
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
简单实用的.net DataTable导出Execl
php session_start()出错原因分析及解决方法
PHP的构造方法,析构方法和this关键字详细介绍
php MessagePack介绍
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
深入探讨"&lt;br /&gt;"和 "\r\n" 两者有什么区别??
PHP中::、-&gt;、self、$this几种操作符的区别介绍
仿Aspnetpager的一个PHP分页类代码 附源码下载
PHP 中关于ord($str)&gt;0x80的详细说明
©2014-2024 dbsqp.com