当前位置: 移动技术网 > IT编程>开发语言>PHP > php实现分页工具类分享

php实现分页工具类分享

2019年03月31日  | 移动技术网IT编程  | 我要评论

重点支援大西北 打一字,林清玄的文章,serv-u

代码:

复制代码 代码如下:

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网