程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP實現的一分頁工具類代碼

PHP實現的一分頁工具類代碼

編輯:關於PHP編程

       總的頁數是一個長度一定的木塊,這把尺子在這個木塊上滑動,前提,尺子的兩端不能超出木塊:D。發現這麼一來要做的事情就是去找這個尺子在木塊上的起始點,根據用戶給傳進來的page變量。哈哈,關鍵代碼下面:

     代碼如下  

        /**
        * 把中間的看成一個可以滑動的固定長度的尺子
        *
        * 把$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實現的一分頁工具類代碼 三聯
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved