您好,欢迎访问一九零五行业门户网

PHP实现的一分页工具类代码

总的页数是一个长度一定的木块,这把尺子在这个木块上滑动,前提,尺子的两端不能超出木块:d。发现这么一来要做的事情就是去找这个尺子在木块上的起始点,根据用户给传进来的page变量。哈哈,关键代码下面: 代码如下 复制代码 /** * 把中间的看成一个可以
总的页数是一个长度一定的木块,这把尺子在这个木块上滑动,前提,尺子的两端不能超出木块:d。发现这么一来要做的事情就是去找这个尺子在木块上的起始点,根据用户给传进来的page变量。哈哈,关键代码下面:
 代码如下 复制代码
    /**
    * 把中间的看成一个可以滑动的固定长度的尺子
    *
    * 把$this->_totalshowpages 当成一个可以滑动的固定长度尺子,
    * 然后$this->_totalpages就是一个给定长度的木块,尺子在这个
    * 木块上滑动。情况两种:
    * 1. 尺子长度大于木块长度,那么就直接输出所有的页码;
    * 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页
    * 数的起始点——$start, $end;
    *www.111cn.net
    * @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     $premore = 1;
    }
    $pagehtml .= $this->_getmorepagehtml($premore);
    }
    for($page = $start; $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 _totalshowpages) {
    for($page = 1; $page _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 _totalpages; $page ++) {
    $pagehtml .= $this->_getpagehtml($page);
    }
    } else {
    $start = $this->_curpage - 2;
    $end = $this->_curpage + $this->_totalshowpages - 2;
    for($page = $start; $page     $pagehtml .= $this->_getpagehtml($page);
    }
    $pagehtml .= $this->_getmorepagehtml($this->_curpage + $this->_totalshowpages - 2);
    $pagehtml .= $this->_getnormalpagehtml($this->_totalpages);
    }
    }
return $pagehtml;
    }
示例图:
类文件下载:hpage.php (等我这个小类库完成了再一起放上 :d)。
更多详细内容请查看:http://www.111cn.net/phper/php/56745.htm
其它类似信息

推荐信息