欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php实现分页工具类分享

程序员文章站 2023-12-09 13:21:03
代码:复制代码 代码如下:    /**    * 把中间的看成一个可以滑动的固定长度的尺子 &nbs...

代码:

复制代码 代码如下:

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