最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單好用的PHP分頁類

 更新時間:2016年04月19日 16:53:30   作者:我才是擼大師  
這篇文章主要為大家分享了一款簡單好用的PHP分頁類page.class.php,感興趣的小伙伴們可以參考一下

本文為大家分享了兩段PHP分頁類,很實(shí)用,供大家參考,具體內(nèi)容如下

<?php
 class Page {
  private $total;   //總記錄
  private $pagesize;  //每頁顯示多少條
  private $limit;   //limit
  private $page;   //當(dāng)前頁碼
  private $pagenum;  //總頁碼
  private $url;   //地址
  private $bothnum;  //兩邊保持?jǐn)?shù)字分頁的量
 
  //構(gòu)造方法初始化
  public function __construct($_total, $_pagesize) {
   $this->total = $_total ? $_total : 1;
   $this->pagesize = $_pagesize;
  $this->pagenum = ceil($this->total / $this->pagesize);
   $this->page = $this->setPage();
   $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";
   $this->url = $this->setUrl();
   $this->bothnum = 2;
  }
 
  //攔截器
  private function __get($_key) {
   return $this->$_key;
  }
 
  //獲取當(dāng)前頁碼
  private function setPage() {
   if (!empty($_GET['page'])) {
    if ($_GET['page'] > 0) {
     if ($_GET['page'] > $this->pagenum) {
      return $this->pagenum;
     } else {
      return $_GET['page'];
     }
    } else {
     return 1;
    }
   } else {
    return 1;
   }
  } 
 
  //獲取地址
  private function setUrl() {
   $_url = $_SERVER["REQUEST_URI"];
   $_par = parse_url($_url);
   if (isset($_par['query'])) {
    parse_str($_par['query'],$_query);
    unset($_query['page']);
    $_url = $_par['path'].'?'.http_build_query($_query);
   }
   return $_url;
  }  //數(shù)字目錄
  private function pageList() {
   for ($i=$this->bothnum;$i>=1;$i--) {
   $_page = $this->page-$i;
   if ($_page < 1) continue;
    $_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';
   }
   $_pagelist .= ' <span class="me">'.$this->page.'</span> ';
   for ($i=1;$i<=$this->bothnum;$i++) {
    $_page = $this->page+$i;
    if ($_page > $this->pagenum) break;
    $_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';
   }
   return $_pagelist;
  }
 
  //首頁
  private function first() {
   if ($this->page > $this->bothnum+1) {
    return ' <a href="'.$this->url.'">1</a> ...';
   }
  }
 
  //上一頁
  private function prev() {
   if ($this->page == 1) {
    return '<span class="disabled">上一頁</span>';
   }
   return ' <a href="'.$this->url.'&page='.($this->page-1).'">上一頁</a> ';
  }
 
  //下一頁
  private function next() {
   if ($this->page == $this->pagenum) {
    return '<span class="disabled">下一頁</span>';
   }
   return ' <a href="'.$this->url.'&page='.($this->page+1).'">下一頁</a> ';
  }
 
  //尾頁
  private function last() {
   if ($this->pagenum - $this->page > $this->bothnum) {
    return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'">'.$this->pagenum.'</a> ';
   }
  }
 
  //分頁信息
  public function showpage() {
   $_page .= $this->first();
   $_page .= $this->pageList();
   $_page .= $this->last();
   $_page .= $this->prev();
   $_page .= $this->next();
   return $_page;
  }
 }
?>

分頁樣式如下圖所示:

使用說明:

<?php
 $_page = new Page($_total,$_pagesize); //其中 $_total 是數(shù)據(jù)集的總條數(shù),$_pagesize 是每頁顯示的數(shù)量.
?>

第二個分頁類:

<?php
/**
 * page.class.php 分頁類
 * 日期:2015-04-05
 * http://aowana.sinaapp.com
 */
class page
{
  public static $url;
  public static $page;
  public static $total;
  public static $size;
  public static $number;
  public static $max;
 
  public static $action = array('previous', 'number', 'next');
 
  public static function show($url, $page, $total, $size=10, $number=11)
  {
    self::$url = $url;
    self::$page = $page;
    self::$total = $total;
    self::$size = $size;
    self::$number = $number;
    self::$max = ceil($total / $size);
 
    $str = '';
    foreach (self::$action as $name)
      $str .= self::$name();
    return $str;
  }
 
  public static function first()
  {
    if (self::$page > 2)
    {
      $url = self::url(1);
      return "<li id=\"pbfirst\"><a href=\"{$url}\" title=\"首頁\">首頁</a></li>";
    }
  }
 
  public static function previous()
  {
    if (self::$page > 1)
    {
      $url = self::url(self::$page - 1);
      return "<li id=\"pbprevious\"><a href=\"{$url}\" title=\"上一頁\">上一頁</a></li>";
    }
  }
 
  public static function number()
  {
    $str = '';
    $f = self::$number % 2 ? (self::$number - 1) / 2 : self::$number / 2;
    $s = self::$page - $f;
    $e = self::$page + $f;
 
    if (self::$page < ($f + 1))
    {
      $s = 1;
      $e = self::$number;
      $e = $e > self::$max ? self::$max : $e;
    }
 
    if (self::$page > (self::$max - $f))
    {
      $s = self::$max - self::$number;
      $s = $s < 1 ? 1 : $s;
      $e = self::$max;
    }
 
    for ($i=$s; $i<=$e; $i++)
    {
      $url = self::url($i);
      if ($i == self::$page)
        $str .= "<li><strong>{$i}</strong></li>";
      else
        $str .= "<li><a href=\"{$url}\" title=\"第{$i}頁\">{$i}</a></li>";
    }
    return $str;
  }
 
  public static function next()
  {
    if (self::$page < self::$max)
    {
      $url = self::url(self::$page + 1);
      return "<li id=\"pbnext\"><a href=\"{$url}\" title=\"下一頁\">下一頁</a></li>";
    }
  }
 
  public static function end()
  {
    if ((self::$max - self::$page) > 1)
    {
      $url = self::url(self::$max);
      return "<li id=\"pbend\"><a href=\"{$url}\" title=\"末頁\">末頁</a></li>";
    }
  }
 
  public static function url($page)
  {
    return str_replace('{page}', $page, self::$url);
  }
}

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • flutter實(shí)現(xiàn)倒計(jì)時加載頁面

    flutter實(shí)現(xiàn)倒計(jì)時加載頁面

    這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)倒計(jì)時加載頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android  ImageView繪制圓角效果

    Android ImageView繪制圓角效果

    這篇文章主要介紹了Android ImageView繪制圓角效果,一種是使用Xfermode,另一種是BitmapShader來實(shí)現(xiàn)圓形和圓角的效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Kotlin伴隨對象的初始化方法示例講解

    Kotlin伴隨對象的初始化方法示例講解

    Kotlin語言的許多特性,包括變量不可變,變量不可為空,等等。這些特性都是為了盡可能地保證程序安全而設(shè)計(jì)的,但是有些時候這些特性也會在編碼時給我們帶來不少的麻煩,下面我們來了解伴隨對象的初始化
    2022-11-11
  • 使用Android實(shí)現(xiàn)一個懸浮在軟鍵盤上的輸入欄

    使用Android實(shí)現(xiàn)一個懸浮在軟鍵盤上的輸入欄

    app開發(fā)中經(jīng)常會遇到一些輸入框要懸浮到軟鍵盤上方的需求,下面這篇文章主要給大家介紹了關(guān)于如何使用Android實(shí)現(xiàn)一個懸浮在軟鍵盤上的輸入欄的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Android使用httpPost向服務(wù)器發(fā)送請求的方法

    Android使用httpPost向服務(wù)器發(fā)送請求的方法

    這篇文章主要介紹了Android使用httpPost向服務(wù)器發(fā)送請求的方法,實(shí)例分析了Android針對HttpPost類的操作技巧,需要的朋友可以參考下
    2015-12-12
  • Android錄屏的三種解決方案

    Android錄屏的三種解決方案

    這篇文章主要介紹了Android錄屏的三種方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Flutter網(wǎng)絡(luò)請求的3種簡單實(shí)現(xiàn)方法

    Flutter網(wǎng)絡(luò)請求的3種簡單實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了給大家Flutter網(wǎng)絡(luò)請求的3種簡單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android Application級別自定義Toast

    Android Application級別自定義Toast

    這篇文章主要為大家詳細(xì)介紹了Android Application級別自定義Toast,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android開發(fā)之完成登陸界面的數(shù)據(jù)保存回顯操作實(shí)例

    Android開發(fā)之完成登陸界面的數(shù)據(jù)保存回顯操作實(shí)例

    這篇文章主要介紹了Android開發(fā)之完成登陸界面的數(shù)據(jù)保存回顯操作實(shí)現(xiàn)方法,結(jié)合完整實(shí)例形式較為詳細(xì)的分析了Android針對登錄數(shù)據(jù)的保存及回顯操作技巧,需要的朋友可以參考下
    2015-12-12
  • android教程使用webview訪問https的url處理sslerror示例

    android教程使用webview訪問https的url處理sslerror示例

    這篇文章主要介紹了android教程使用webview訪問https的url處理sslerror示例,大家參考使用吧
    2014-01-01

最新評論

育儿| 衡东县| 哈巴河县| 福鼎市| 三门县| 托克逊县| 陵川县| 沈阳市| 张家界市| 漳州市| 泗阳县| 庆安县| 金秀| 城固县| 六枝特区| 灵石县| 宾川县| 廊坊市| 海南省| 奉新县| 福安市| 绥棱县| 南皮县| 绥德县| 中江县| 平湖市| 报价| 广河县| 正宁县| 皋兰县| 双流县| 津市市| 林口县| 晋州市| 资源县| 庆元县| 淳化县| 临沂市| 藁城市| 微山县| 屏东市|