首頁 後端開發 php教程 php分頁類別實例詳解

php分頁類別實例詳解

Feb 10, 2018 am 09:10 AM
php 實例 詳解

本文主和大家詳細介紹了萬能的php分頁類,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助到大家。


<?php
/*核心:首页、上一页、下一页、尾页的url*/
/*超全局$_SERVER*/
$page = new Page(5,60);
var_dump($page->allUrl());
class Page{
//   每页显示的个数
  protected $number;
//   一共有多少数据
  protected $totalCount;
//   当前页
  protected $page;
//   url
  protected $url;
  
  public function __construct($number,$totalCount){
    $this->number= $number;
    $this->totalCount = $totalCount;
    //得到总页数
    $this->totalPage = $this->getTotalPage();
    //得到当前页数
    $this->page = $this->getPage();
    //得到URL
    $this->url = $this->getUrl();
    echo $this->url;
  }
  /*得到总页数并向上取整*/
  protected function getTotalPage(){
    return   ceil($this->totalCount/$this->number);
  }
  /**/
  protected function getPage(){
    if (empty($_GET[&#39;page&#39;])){
      $page=1;
    }elseif ($_GET[&#39;page&#39;] > $this->totalPage){
      $page = $this->totalPage;
    }elseif ($_GET["page"]<1){
      $page = 1;
    }else{
      $page = $_GET[&#39;page&#39;];
    }
    return $page;
  }
  protected function getUrl(){
    //得到协议名
    $scheme = $_SERVER[&#39;REQUEST_SCHEME&#39;];
    //得到主机名
    $host= $_SERVER[&#39;SERVER_NAME&#39;];
    //得到端口号
    $port = $_SERVER[&#39;SERVER_PORT&#39;];
    //得到路径和请求字符串
    $url = $_SERVER[&#39;REQUEST_URI&#39;];
    /*中间做处理,要将page=5等这种字符串拼接URL
    中,所以如果原来的url中有page这个参数,我们首先
    需要将原来的page参数给清空*/
    $urlArray = parse_url($url);
//     var_dump($urlArray);

    $path = $urlArray[&#39;path&#39;];
    if (!empty($urlArray[&#39;query&#39;])){
      //将query中的值转化为数组
      parse_str($urlArray[&#39;query&#39;],$array);
      //如果他有page就将它删掉
      unset($array[&#39;page&#39;]);
      //将关联数组转化为query
      $query = http_build_query($array);
      //不为空的话就与path连结
      if ($query != &#39;&#39;){
        $path = $path.&#39;?&#39;.$query;
      }
    }
    return &#39;http://&#39;. $host.&#39;:&#39;.$port.$path;
  }
  protected function setUrl($str){
    if (strstr($this->url, &#39;?&#39;)){
      $url = $this->url.&#39;&&#39;.$str;
    }else{
      $url = $this->url.&#39;?&#39;.$str;
    }
    return $url;
  }
  /*所有的url*/
  public function allUrl(){
    return [
      &#39;first&#39; => $this->first(),
      &#39;next&#39; => $this->next(),
      &#39;prev&#39;=> $this->prev(),
      &#39;end&#39;=> $this->end(),
    ];
  }
  /*首页*/
  public function first(){
    return $this->setUrl(&#39;page=1&#39;);
  }
  /*下一页*/
  public function next(){
    //根据当前page得带下一页的页码
    if ($this->page+1 > $this->totalPage) {
      $page = $this->totalPage;
    }else{
      $page = $this->page+1;
    }
    return $this->setUrl(&#39;page=&#39;.$page);
  }
  /*上一页*/
  public function prev(){
    //根据当前page得带下一页的页码
    if ($this->page - 1 < 1) {
      $page = 1;
    }else{
      $page = $this->page-1;
    }
    return $this->setUrl(&#39;page=&#39;.$page);
  }
  /*尾页*/
  public function end(){
    return $this->setUrl(&#39;page=&#39;.$this->totalPage);
  }
  /*limit 0,5*/
  public function limit(){
    $offset = ($this->page-1)*$this->number;
    return $offset.&#39;,&#39;.$this->number;
  }
  
}

相關推薦:

#php分頁類別實例分析

最詳細的ThinkPHP5自訂分頁類別教學

php分頁類別的實作

以上是php分頁類別實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何處理PHP中的致命錯誤? 如何處理PHP中的致命錯誤? Sep 04, 2025 am 09:17 AM

fatalErrorsinphaltexecutionandCannotBegaughtbytry-catchBlocks.2.useregister_shutdown_function()todetectfataLerrorSviaErrorsviaErrorsviaError_get_get_last()andRespondApprprraper.3.combinewithset_error_error_handler_handler_handler()

如何從PHP中的數組中刪除重複值? 如何從PHP中的數組中刪除重複值? Sep 05, 2025 am 08:28 AM

使用array_unique()函數可移除數組中的重複值,保留首次出現的元素,適用於索引和關聯數組,例如:$fruits=['apple','banana','apple','orange','banana'];$unique_fruits=array_unique($fruits);結果為['apple','banana','orange'];該函數保持原鍵名,若需重新索引,可用array_values();注意其基於字符串比較,混合類型可能影響結果,如需嚴格類型檢查,建議自定義循環處理。

如何防止PHP中的SQL注入? 如何防止PHP中的SQL注入? Sep 05, 2025 am 05:27 AM

usePredePredStatementSwithpDoorMysqlitoseParatesqllogicFromData,defrementingUserInputfrombeingExecudeCedeceDecudedAscode.2.validateandateandateandateandateAndateAndeAttuptoensureitMatchesexpectionformats,sueSasasusingfilter_var()

PHP中的構造函數和驅動器是什麼? PHP中的構造函數和驅動器是什麼? Sep 05, 2025 am 08:48 AM

構造函數__construct()在對象創建時自動執行,用於初始化,如賦值或建立連接;2.析構函數__destruct()在對象銷毀時調用,用於釋放資源,如關閉文件,兩者共同管理PHP對像生命週期。

如何使用發電機將內存保存在PHP中? 如何使用發電機將內存保存在PHP中? Sep 06, 2025 am 04:04 AM

生成器通過逐個產出值而非一次性返回完整數組,有效節省內存。使用yield的函數返回Generator對象,按需生成值,避免大量數據佔用內存。

如何檢查php中的變量是否為空? 如何檢查php中的變量是否為空? Sep 05, 2025 am 08:35 AM

Useis_null () OR === tocheck fornullinphp.is_null ($ was) Returnstrueif $ Varisnull.al alternatives, $ was === zerensuresonlynullvalu Esreturntrue, avoidal false -positival vocal quality0orphalse.Avoid == asitmayincorrectlyevaluateotherfalsyvalues ​​zone.

如何使用正則表達式(REGEX)與PHP中的模式匹配? 如何使用正則表達式(REGEX)與PHP中的模式匹配? Sep 04, 2025 am 09:11 AM

使用preg_match()進行單次匹配,preg_match_all()進行全局匹配,結合正則修飾符和轉義特殊字符可有效實現PHP中的模式匹配。

如何在PHP中獲取當前腳本的文件名? 如何在PHP中獲取當前腳本的文件名? Sep 05, 2025 am 08:02 AM

使用basename(__FILE__)可獲取當前腳本文件名(如index.php),適用於需要可靠文件名的場景;__FILE__返回完整路徑,$_SERVER['PHP_SELF']返回相對於網站根目錄的訪問路徑,用於構建URL等請求相關操作。

See all articles