首頁 後端開發 php教程 结合 thinkPHP 分页写成自己分页类_PHP教程

结合 thinkPHP 分页写成自己分页类_PHP教程

Jul 20, 2016 am 11:13 AM
first header next thinkphp 分頁 類別 結合 自己 記錄 首頁

登入後複製
登入後複製
登入後複製
<?<span php 
</span><span //</span><span  +----------------------------------------------------------------------
// | 参考  ThinkPHP 分页类改变而来
// +----------------------------------------------------------------------
// | 有两种样式:1、当面页码始终在中间。 2、当点到分页条两边的页码时,自动翻页(默认)。
// +----------------------------------------------------------------------
// | Author: zbseoag <zbsoeagy@qq.com>
// +----------------------------------------------------------------------
// $Id: page.class.php  2013-05-26 00:08:49</span>

 <span session_start</span>(); <span //</span><span 由于要记录用户是向前,还是向后翻页,故启用了session</span>

<span class</span><span  Page{

    </span><span public</span> <span $page</span>; <span //</span><span 当前页</span>
    <span public</span> <span $nextPage</span>; <span //</span><span 上一页</span>
    <span public</span> <span $prevPage</span>; <span //</span><span 下一页</span>
    <span public</span> <span $pageMax</span>; <span //</span><span 最大页</span>
    <span public</span> <span $startPage</span>; <span //</span><span 分页条起码</span>
    <span public</span> <span $endPage</span>;  <span //</span><span  分页条止码</span>
    <span public</span> <span $style</span>; <span //</span><span 样式:$style = mid</span>
    <span public</span> <span $parameter</span>;<span //</span><span 页数跳转时要带的参数</span>
    <span public</span> <span $varPage</span>;<span //</span><span 默认分页变量</span>
    <span public</span> <span $url</span> = <span null</span>;  <span //</span><span 指定url地址</span>
    
    <span protected</span> <span $config</span> = <span array</span><span (
        </span>'header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页',
        'theme' => '%records% %header% %page%/%pageMax% 页  %firstPage%%prevPage%%linkPage%%nextPage%%lastPage%'<span 
    );
     
    </span><span /*</span><span *
     +----------------------------------------------------------
     * 架造函数
     +----------------------------------------------------------
     * @param  $records   总的记录数
     * @param  $pageSize  每页显示记录数
     * @param  $pageVal   分页跳转的参数
     * @param  $parameter 附加参数
     +----------------------------------------------------------
    </span><span */</span>
     
    <span function</span> __construct(<span $records</span>, <span $pageSize</span>, <span $pageVal</span> = 'p', <span $parameter</span> = <span null</span><span ){
         
        </span><span $this</span>->records = <span $records</span><span ;
        </span><span $this</span>->pageMax = <span ceil</span>(<span $records</span>/<span $pageSize</span><span );
        </span><span $this</span>->page= <span max</span>(<span intval</span>(<span $_GET</span>[<span $pageVal</span>]), 1); <span //</span><span 最小为1</span>
        <span $this</span>->page = <span min</span>(<span $this</span>->page, <span $this</span>->pageMax); <span //</span><span 最大为末页</span>
        <span $this</span>->nextPage = <span $this</span>->page + 1<span ;
        </span><span $this</span>->prevPage = <span $this</span>->page - 1<span ;
        </span><span $this</span>->varPage = <span $pageVal</span>; <span //</span><span 默认分页变量名</span>
        <span $this</span>->parameter = <span $parameter</span>; <span //</span><span 附加 url 参数</span>
<span     }
     
    </span><span /*</span><span *
     +----------------------------------------------------------
     * 设置样式
     +----------------------------------------------------------
     * @param  $name   内置参数名
     * @param  $value  给定参数值
     +----------------------------------------------------------
     </span><span */</span>
    <span function</span> setConfig(<span $name</span>, <span $value</span><span ){
        </span><span if</span>(<span isset</span>(<span $this</span>->config[<span $name</span><span ])){
            </span><span $this</span>->config[<span $name</span>] = <span $value</span><span ;
        }
    }
     
    </span><span /*</span><span *
     +----------------------------------------------------------
     * 分页显示输出
     +----------------------------------------------------------
     * @param  $length 分页条长度
     +----------------------------------------------------------
     * @param  $hide 是否适时隐藏上、下一页,比如:当前是第一页,则隐藏上一页
     +----------------------------------------------------------
     </span><span */</span>
    <span function</span> show(<span $length</span>, <span $hide</span> = <span false</span><span ){

        </span><span if</span>(0 == <span $this</span>->records) <span return</span> ''<span ;
        </span><span empty</span>(<span $this</span>->url)? <span $this</span>->url = <span $_SERVER</span>['REQUEST_URI'] : <span null</span><span ;
        </span><span $url</span> = <span $this</span>->url.(<span strpos</span>(<span $this</span>->url,'?')?'':'?').<span $this</span>-><span parameter;
        </span><span $parse</span> = <span parse_url</span>(<span $url</span><span );
         
        </span><span if</span>(<span isset</span>(<span $parse</span>['query'<span ])){
            </span><span parse_str</span>(<span $parse</span>['query'],<span $params</span><span );
            </span><span unset</span>(<span $params</span>[<span $this</span>-><span varPage]);
            </span><span $url</span> = <span $parse</span>['path'].'?'.<span http_build_query</span>(<span $params</span><span );
        }

        </span><span if</span>('mid' == <span $this</span>->style){ <span //</span><span 当前页居中</span>
            <span if</span>(<span $length</span> % 2 != 0<span  ){
                </span><span $midder</span> = <span ceil</span>(<span $length</span> / 2<span );
                </span><span $big_repair</span> = <span $midder</span> - 1 ;<span //</span><span 当上面以进一法取整,则这里为减1,反之为加1</span>
            }<span else</span><span {
                </span><span $big_repair</span> = <span $midder</span> = <span $length</span> / 2<span ;
            }
            </span><span $sml_repair</span> = <span $midder</span>- 1;  <span //</span><span 这是小补丁</span>
            <span $this</span>->startPage = (<span $this</span>->page  + <span $midder</span>) > <span $this</span>->pageMax ? <span $this</span>->pageMax  - <span $length</span> : <span $this</span>->page - <span $sml_repair</span><span ;
            </span><span $this</span>->endPage = (<span $this</span>->page < <span $midder</span>)? <span $length</span> : <span $this</span>->page + <span $big_repair</span><span ;
        }</span><span else</span>{ <span //</span><span 最后一页翻页</span>
            <span $this</span>->startPage = (<span $this</span>->page >= <span $length</span>)? <span $_SESSION</span>['startPage'] : 1<span ;
            </span><span $this</span>->endPage  = <span $this</span>->startPage + <span $length</span> - 1<span ;
             
            </span><span $this</span>->lastPage =  <span isset</span>(<span $_SESSION</span>['lastPage'])? <span $_SESSION</span>['lastPage'] : 1; <span //</span><span 上次的页码</span>
            <span $_SESSION</span>['lastPage'] = <span $this</span>->page;  <span //</span><span 保存当前页</span>
             
            <span if</span>(<span $this</span>->lastPage < <span $this</span>->page){ <span //</span><span 后翻页</span>
                <span if</span>(<span $this</span>->page >= <span $this</span>-><span endPage){
                    </span><span $this</span>->startPage = <span $_SESSION</span>['startPage'] = <span $this</span>-><span page;
                    </span><span $this</span>->endPage = <span $this</span>->startPage + <span $length</span> -1<span ;
                }
            }</span><span elseif</span>(<span $this</span>->lastPage == <span $this</span>->page){<span //</span><span 切换</span>
                <span if</span>(<span $this</span>->page == <span $this</span>-><span endPage){
                    </span><span $this</span>->startPage = <span $_SESSION</span>['startPage'] = <span $this</span>-><span page;
                    </span><span $this</span>->endPage = <span $this</span>->startPage + <span $length</span> -1<span ;
                }</span><span else</span><span {
                    </span><span $this</span>->startPage = <span $_SESSION</span>['startPage'] = <span $this</span>->page - <span $length</span> + 1<span ;
                    </span><span $this</span>->endPage = <span $this</span>->startPage + <span $length</span> -1<span ;
                }
            }</span><span else</span>{<span //</span><span 前翻页</span>
                <span if</span>(<span $this</span>->page == <span $this</span>-><span startPage ){
                    </span><span $this</span>->startPage = <span $_SESSION</span>['startPage'] = <span $this</span>->page - <span $length</span> + 1<span ;
                    </span><span $this</span>->endPage = <span $this</span>->startPage + <span $length</span> -1<span ;
                }
            }
            </span><span //</span><span echo '开始页码:'. $this->startPage.'<br/>';
            //echo '上次页码:'. $this->lastPage.'<br/>';</span>
<span         }
        </span><span //</span><span 修正一下</span>
        <span $this</span>->startPage = <span min</span>(<span $this</span>->pageMax - <span $length</span> + 1, <span $this</span>->startPage); <span //</span><span 最大</span>
        <span $this</span>->startPage = <span max</span>(<span $this</span>->startPage, 1);<span //</span><span 最小为第一页(先求最大,再求最小)</span>
         
        <span $this</span>->endPage = <span $this</span>->startPage + <span $length</span> -1<span ;
        </span><span $this</span>->endPage = <span min</span>(<span $this</span>->pageMax, <span $this</span>->endPage); <span //</span><span 最大为末页</span>
         
        <span $_SESSION</span>['startPage'] = <span $this</span>->startPage; <span //</span><span 修正之后,重新保存
         
        //echo '开始页码:'. $this->startPage.'<br/>';
        //echo '上次页码:'. $this->lastPage.'<br/>';</span>
         
        <span if</span>(<span $this</span>->page <= 1){<span //</span><span 如果已经是首页</span>
            <span $firstPage</span> = '<span>'.<span $this</span>->config['first'].'</span>'<span ;
            </span><span $prevPage</span> = '<span>'.<span $this</span>->config['prev'].'</span>'<span ;
        }</span><span else</span><span {
            </span><span $firstPage</span> = "<span><a href='<span $url</span>&<span $this</span>->varPage=1'>".<span $this</span>->config['first'].'</a>'<span ;
            </span><span $prevPage</span> = "<span><a href='<span $url</span>&<span $this</span>->varPage=<span $this</span>->prevPage'>".<span $this</span>->config['prev'].'</a>'<span ;
        }
        
        </span><span if</span>(<span $this</span>->page >= <span $this</span>->pageMax){ <span //</span><span 如果已经是末页</span>
            <span $nextPage</span> = '<span>'.<span $this</span>->config['next'].'</span>'<span ;
            </span><span $lastPage</span> = '<span>'.<span $this</span>->config['last'].'</span>'<span ;
        }</span><span else</span><span {
            </span><span $lastPage</span> = "<a href='<span $url</span>&<span $this</span>->varPage=<span $this</span>->pageMax'>".<span $this</span>->config['last'].'</a>'<span ;
            </span><span $nextPage</span> = "<a href='<span $url</span>&<span $this</span>->varPage=<span $this</span>->nextPage'>".<span $this</span>->config['next'].'</a>'<span ;
        }
        
        </span><span if</span>(<span $hide</span>){ <span //</span><span 如果是隐藏模式</span>
            (<span $this</span>->nextPage >= <span $this</span>->pageMax)? <span $nextPage</span> = '' : <span null</span><span ;
            (</span><span $this</span>->prevPage < 1)? <span $prevPage</span> = '' : <span null</span><span ;
        }

        </span><span for</span>(<span $i</span> = <span $this</span>->startPage; <span $i</span> <= <span $this</span>->endPage; <span $i</span>++<span ){
            </span><span if</span> (<span $this</span>->page == <span $i</span><span )
                </span><span $linkPage</span> .= "<a class='current' href='<span $url</span>&<span $this</span>->varPage=<span $i</span>'><span $i</span></a>"<span ;
            </span><span else</span>
                <span $linkPage</span> .= "<a href='<span $url</span>&<span $this</span>->varPage=<span $i</span>'><span $i</span></a>"<span ;
        }
        </span><span $search</span> = <span array</span>('%records%','%header%','%page%','%pageMax%','%firstPage%','%prevPage%','%linkPage%','%nextPage%','%lastPage%'<span );
        </span><span $replace</span> = <span array</span>(<span $this</span>->records,<span $this</span>->config['header'],<span $this</span>->page,<span $this</span>->pageMax,<span $firstPage</span>,<span $prevPage</span>,<span $linkPage</span>,<span $nextPage</span>,<span $lastPage</span><span );
        </span><span $pageStr</span> = <span str_replace</span>(<span $search</span>, <span $replace</span>, <span $this</span>->config['theme'<span ]);

        </span><span return</span> <span $pageStr</span><span ;
    }
     
}
</span><span $page</span> = <span new</span> Page(340, 10<span );
</span><span $theme</span> = '%records% %header% %page%/%pageMax% 页  %firstPage%%prevPage%%linkPage%%nextPage%%lastPage%'<span ;
</span><span $page</span>->setConfig('theme',<span $theme</span>); <span //</span><span 可以修改样式,比如:当不要末页是,可以删除 %lastPage%,或者改变位置次序</span>
<span $page</span>->setConfig('last','末页'); <span //</span><span 可自定义文字 : 'header'='条记录','prev'='上一页','next'='下一页','first'='首页','last'='尾页'</span>
<span $page</span>->url = 'http://localhost/test.php'<span ;
</span><span echo</span> <span $page</span>->show(10<span );

</span>?>
 <style><span 
a</span>,span{ margin:<span 2px 5px;}
</span>.<span current</span>{ color:<span red;}
</span></style>
登入後複製
登入後複製
登入後複製
登入後複製

登入後複製
登入後複製
登入後複製

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440334.htmlTechArticle? (); ; ; ; ; ; ; ; ; ; = ; = 'header'='条记录','prev'='上一页','next'='下一页','first'='首页','last'='尾页', 'theme' = '%records% %header% %page%/%pageMax% 页 %first...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

拼多多買過的東西在哪裡查看記錄 查看買過的商品記錄的方法 拼多多買過的東西在哪裡查看記錄 查看買過的商品記錄的方法 Mar 12, 2024 pm 07:20 PM

拼多多軟體內提供的商品好物非常多,隨時隨地想買就買,而且每一件商品品質都是嚴格把關的,件件商品都是正品,不同還有非常多優惠的購物折扣,讓大家網購根本停不下來。輸入手機號碼在線登錄,在線添加多個收貨地址和聯繫方式,可以隨時查看最新的物流動態,不同品類的商品板塊都是開放的,搜索上下滑動選購下單,足不出戶輕鬆體驗便捷的網購服務,還能查看所有的購買記錄,包括自己買過的商品,數十個購物紅包、優惠券免費領取使用,現在小編在線詳細為拼多多用戶們帶來查看買過的商品記錄的方法。  1.打開手機,點選拼多多圖標,

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

如何設定谷歌瀏覽器首頁 如何設定谷歌瀏覽器首頁 Mar 02, 2024 pm 04:04 PM

如何設定谷歌瀏覽器首頁?谷歌瀏覽器是如今最受歡迎的網頁瀏覽器軟體,這款瀏覽器擁有簡潔高效的特性,神獸用戶喜歡,在使用瀏覽器的時候,不同的人有不同的設定喜好,有人喜歡將Google瀏覽器設定成預設首​​頁,也有人喜歡將首頁設定成其他搜尋引擎,那麼具體要在哪裡設定呢。接下來小編就帶給大家快速設定Google瀏覽器首頁方法,希望能帶給大家幫助。快速設定Google瀏覽器首頁方法1、開啟Google瀏覽器(如圖)。 2.點選介面右上角的選單鍵(如圖)。 3、選擇「設定」選項(如圖)。 4、在設定選單中,找到「搜尋引擎」(如

laravel和thinkphp哪個好 laravel和thinkphp哪個好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的效能比較:ThinkPHP 效能通常優於 Laravel,專注於最佳化和快取。 Laravel 性能良好,但對於複雜應用程序,ThinkPHP 可能更適合。

thinkphp怎麼安裝 thinkphp怎麼安裝 Apr 09, 2024 pm 05:42 PM

ThinkPHP 安裝步驟:準備 PHP、Composer、MySQL 環境。使用 Composer 建立專案。安裝 ThinkPHP 框架及相依性。配置資料庫連線。產生應用程式碼。啟動應用程式並造訪 http://localhost:8000。

MyBatis分頁插件原理詳解 MyBatis分頁插件原理詳解 Feb 22, 2024 pm 03:42 PM

MyBatis是一個優秀的持久層框架,它支援基於XML和註解的方式操作資料庫,簡單易用,同時也提供了豐富的插件機制。其中,分頁插件是使用頻率較高的插件之一。本文將深入探討MyBatis分頁外掛的原理,並結合具體的程式碼範例進行說明。一、分頁外掛原理MyBatis本身並沒有提供原生的分頁功能,但可以藉助外掛程式來實現分頁查詢。分頁插件的原理主要是透過攔截MyBatis

See all articles