亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

一個php的分頁類(含調用方法)

2024-05-04 20:10:55
字體:
來源:轉載
供稿:網友
<?php
// 方法調用:
$pages = new Pages($perpage, $count, $page, 'showpage.php?page');  創建對象
$pages->setShowPageNum($num);      設置顯示的頁數
$pages->setCurrentIndexPage($num);    設置當前頁在分頁欄中的位置
$pages->setFirstPageText($text);    設置鏈接第一頁顯示的文字
$pages->setLastPageText($text);      設置鏈接最后一頁顯示的文字
$pages->setPrePageText($text);      設置鏈接上一頁顯示的文字
$pages->setNextPageText($text);      設置鏈接下一頁顯示的文字
$pages->setPageCss($css);        設置各分頁碼css樣式的class名稱
$pages->setCurrentPageCss($css);    設置當前頁碼css樣式的class名稱
$pages->setPageStyle($style);      設置各分頁碼的樣式,即style屬性
$pages->setCurrentPageStyle($style);  設置當前頁碼的樣式,即style屬性
$pages->setLinkSymbol('=');        設置地址鏈接中頁碼與變量的連接符,如page=2中的“=”
$pages->isShowFirstAndLast(true);    設置是否顯示第一頁與最后一頁的鏈接
$pages->isShowForSimplePage(true);    設置當只有一頁時是否顯示分頁
$pageCount = $pages->getTotalPageNum();  獲取總頁數
?>

<?php
//分頁類
class Pages{
  private $eachDisNums;          //每頁顯示的條目數
  private $nums;              //總條目數
  private $currentPage;          //當前被選中的頁
  private $showPageNum = 5;        //每次顯示的頁數
  private $curIndexPage = 3;        //當前頁在分頁中的位置
  private $totalPageNum;          //總頁數
  private $arrPage = array();        //用來構造分頁的數組
  private $subPageLink;          //每個分頁的鏈接
  private $firstPageText = '1..';      //第一頁顯示的文字
  private $lastPageText;          //最后一頁顯示的文字
  private $prePageText = '<';        //上一頁顯示的文字
  private $nextPageText = '>';      //下一頁顯示的文字
  private $pageCss = '';          //一般頁的樣式名稱
  private $curPageCss = '';        //當前頁的樣式名稱
  private $pageStyle = '';        //一般頁的樣式
  private $curPageStyle = '';        //當前頁的樣式
  private $linkSymbol = '=';        //url鏈接地址中page與頁數之間的符號
  private $isShowFirstLast = true;    //是否顯示第一頁和最后一頁
  private $isShowForSimplePage = false;  //當沒有分頁時(即總條目數不大于每頁顯示的條目數)是否顯示分頁欄
  
  /**
   * 設置顯示的頁數
   *
   * @param integer $num 顯示的頁數
   * @return void
   */
  public function setShowPageNum($num){
    $this->showPageNum = $num;
  }

  /**
   * 設置當前頁在分頁欄中的位置
   *
   * @param integer $num 當前頁在分頁欄中的位置
   * @return void
   */
  public function setCurrentIndexPage($num){
    $this->curIndexPage = $num;
  }

  /**
   * 設置鏈接第一頁顯示的文字
   *
   * @param string $text 要顯示的文字
   * @return void
   */
  public function setFirstPageText($text){
    $this->firstPageText = $text;
  }

  /**
   * 設置鏈接最后一頁顯示的文字
   *
   * @param string $text 要顯示的文字
   * @return void
   */
  public function setLastPageText($text){
    $this->lastPageText = $text;
  }

  /**
   * 設置鏈接上一頁顯示的文字
   *
   * @param string $text 要顯示的文字
   * @return void
   */
  public function setPrePageText($text){
    $this->prePageText = $text;
  }

  /**
   * 設置鏈接下一頁顯示的文字
   *
   * @param string $text 要顯示的文字
   * @return void
   */
  public function setNextPageText($text){
    $this->nextPageText = $text;
  }

  /**
   * 設置各分頁碼css樣式的class名稱
   *
   * @param string $css css樣式名稱
   * @return void
   */
  public function setPageCss($css){
    $this->pageCss = $css;
  }

  /**
   * 設置當前頁碼css樣式的class名稱
   *
   * @param string $css css樣式名稱
   * @return void
   */
  public function setCurrentPageCss($css){
    $this->curPageCss = $css;
  }

  /**
   * 設置各分頁碼的樣式,即style屬性
   *
   * @param string $style style樣式
   * @return void
   */
  public function setPageStyle($style){
    $this->pageStyle = $style;
  }

  /**
   * 設置當前頁碼的樣式,即style屬性
   *
   * @param string $style style樣式
   * @return void
   */
  public function setCurrentPageStyle($style){
    $this->curPageStyle = $style;
  }

  /**
   * 設置地址鏈接中頁碼與變量的連接符,如page=2中的“=”
   *
   * @param string $symbol 連接符號
   * @return void
   */
  public function setLinkSymbol($symbol){
    $this->linkSymbol = $symbol;
  }

  /**
   * 獲取總頁數
   *
   * @access private
   * @return integer
   */
  public function getTotalPageNum(){
    return $this->totalPageNum;
  }

  /**
   * 設置是否顯示第一頁與最后一頁的鏈接
   *
   * @param boolean $is true:顯示,false:不顯示
   * @return void
   */
  public function isShowFirstAndLast($is){
    $this->isShowFirstLast = $is;
  }

  /**
   * 設置當只有一頁時是否顯示分頁
   *
   * @param boolean $is true:顯示,false:不顯示
   * @return void
   */
  public function isShowForSimplePage($is){
    $this->isShowForSimplePage = $is;
  }

  /**
   * 構造方法
   *
   * @param integer $eachDisNums 每頁顯示的條目數
   * @param integer $nums 總條目數
   * @param integer $current_num 當前被選中的頁
   * @param integer $showPageNum 每次顯示的頁數
   * @param integer $subPageLink 每個分頁的鏈接
   * @param integer $subPage_type 顯示分頁的類型
   * @return void
   */
  public function __construct($eachDisNums, $nums, $currentPage, $subPageLink){
    $this->eachDisNums=intval($eachDisNums);
    $nums = $nums==0 ? 1: $nums;
    $this->nums = intval($nums);
    $this->totalPageNum = ceil($nums/$eachDisNums);
    $this->currentPage =intval($currentPage);
    $this->currentPage =  $this->currentPage<=0 ? 1: $this->currentPage;
    $this->currentPage = $this->currentPage > $this->totalPageNum ? 1 : $this->currentPage;
    $this->subPageLink = $subPageLink;
    $this->lastPageText = '..'.$this->totalPageNum;
  }

  public function __destruct(){
    unset($this->eachDisNums);
    unset($this->nums);
    unset($this->currentPage);
    unset($this->showPageNum);
    unset($this->curIndexPage);
    unset($this->totalPageNum);
    unset($this->arrPage);
    unset($this->subPageLink);
    unset($this->firstPageText);
    unset($this->lastPageText);
    unset($this->prePageText);
    unset($this->nextPageText);
    unset($this->pageCss);
    unset($this->curPageCss);
    unset($this->pageStyle);
    unset($this->curPageStyle);
    unset($this->linkSymbol);
    unset($this->isShowFirstLast);
    unset($this->isShowForSimplePage);    
  }

  /**
   * 生成分頁
   *
   * @return string
   */
  public function generatePages(){
    $subPageCss2Str = '';

    $isShow = false;
    if($this->totalPageNum == 1){  //只有一頁時
      if($this->isShowForSimplePage){
        $isShow = true;
      }
    }else{
      $isShow = true;
    }
    
    if($isShow){
      if($this->currentPage > 1){
        $prewPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage-1);
        if($this->isShowFirstLast){
          $firstPageUrl = $this->subPageLink.$this->linkSymbol."1";
          $subPageCss2Str .= '<a href="'.$firstPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->firstPageText.'</a>';
        }
        $subPageCss2Str .= '<a href="'.$prewPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->prePageText.'</a>';
      }

      $a=$this->construct_num_Page();
      for($i=0;$i<count($a);$i++){
        $s=$a[$i];
        if($s == $this->currentPage ){
          $subPageCss2Str .= '<a href="#" class="'.$this->curPageCss.'" style="'.$this->curPageStyle.'">'.$s.'</a>';
        }else{
          $url = $this->subPageLink.$this->linkSymbol.$s;
          $subPageCss2Str .= '<a href="'.$url.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$s.'</a>';
        }
      }
      if($this->currentPage < $this->totalPageNum){
        $nextPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage+1);
        $subPageCss2Str .= '<a href="'.$nextPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->nextPageText.'</a>';
        if($this->isShowFirstLast){
          $lastPageUrl = $this->subPageLink.$this->linkSymbol.$this->totalPageNum;
          $subPageCss2Str .= '<a href="'.$lastPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->lastPageText.'</a> ';
        }
      }
    }
    return $subPageCss2Str;
  }//End of generatePages() Method

  /**
   * 用來給建立分頁的數組初始化的函數。
   *
   * @return array
   */
  private function initArray(){
    for($i=0; $i < $this->showPageNum; $i ++){
      $this->arrPage[$i] = $i;
    }
    return $this->arrPage;
  }//End of initArray() Method

  /**
   * 用來構造顯示的條目
   * 即:[1][2][3][4][5][6][7][8][9][10]
   *
   * @return array
   */
  private function construct_num_Page(){
    if($this->totalPageNum < $this->showPageNum){
      $currentArray = array();
      for($i=0; $i < $this->totalPageNum; $i ++){
        $currentArray[$i] = $i + 1;
      }
    }else{
      $currentArray = $this->initArray();
      $curArrayLen = count($currentArray);
      if($this->currentPage <= $this->curIndexPage){
        for($i=0; $i < $curArrayLen; $i ++){
          $currentArray[$i] = $i+1;
        }
      }elseif (($this->currentPage <= $this->totalPageNum) && ($this->currentPage > ($this->totalPageNum - $this->showPageNum + 1))){  
        //構造最后的分頁欄,35 36 37 38 39 40 [下一頁] [最后一頁] 總頁數為40
        for($i=0; $i < $curArrayLen; $i ++){
          $currentArray[$i] = $this->totalPageNum - $this->showPageNum + 1 + $i;
        }
      }else{
        for($i=0; $i < $curArrayLen; $i ++){
          $currentArray[$i] = $this->currentPage - $this->curIndexPage + 1 +$i;
        }
      }
    }

    return $currentArray;
  }//End of construct_num_Page() Method
}//End of Pages Class
?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av片电影专区| 国产欧美日韩精品专区| 亚洲精品小视频在线观看| 欧美成人三级视频网站| 国产精品久久久久久久7电影| 日韩人在线观看| 久久这里只有精品99| 国产啪精品视频网站| 成人黄色av网| 国产成人午夜视频网址| 国产精品99免视看9| 亚洲精品黄网在线观看| 欧美日韩黄色大片| 色妞在线综合亚洲欧美| 亚洲欧美日韩直播| 91tv亚洲精品香蕉国产一区7ujn| 92国产精品视频| 久热精品视频在线观看| 国产一区二区三区在线| 超碰97人人做人人爱少妇| 欧美壮男野外gaytube| 欧美另类99xxxxx| 日韩av在线免费播放| 欧洲亚洲免费在线| 国产专区欧美专区| 亚洲精品永久免费| 日韩精品免费在线| 欧美精品久久久久久久久| 亚洲va电影大全| 亚洲欧美国产视频| 日韩精品久久久久| 精品福利樱桃av导航| 91精品91久久久久久| 亚洲性猛交xxxxwww| 亚洲视频欧洲视频| 亚洲天堂av在线免费| 久久久综合免费视频| 亚洲欧美日韩爽爽影院| 欧美大荫蒂xxx| 中文字幕久久久av一区| 中文字幕在线观看日韩| 在线视频精品一| 国产精品成人播放| 欧美日韩亚洲国产一区| 欧美在线视频免费| 亚洲a在线播放| 国产精品久久久久高潮| 久久精品国产一区二区三区| 欧美日韩成人网| 国产精品美女主播在线观看纯欲| 久久这里有精品视频| 欧美成年人视频| 国产aⅴ夜夜欢一区二区三区| 欧美在线激情网| 欧美三级xxx| 6080yy精品一区二区三区| 国产精品亚洲аv天堂网| 国产免费观看久久黄| 日韩av电影在线免费播放| 亚洲三级黄色在线观看| 91中文字幕在线观看| 国产精品成熟老女人| 亚洲欧洲成视频免费观看| 国内精品久久久久久| 亚洲欧美日韩精品久久亚洲区| 国外成人在线直播| 亚洲综合中文字幕68页| 亚洲天堂av高清| 一区二区三区国产视频| 国产精品免费久久久久久| 97成人精品视频在线观看| 久久精品视频在线观看| 久久天天躁狠狠躁老女人| 亚洲影视九九影院在线观看| 91久久嫩草影院一区二区| 欧美激情欧美狂野欧美精品| 国产精品入口尤物| 人人澡人人澡人人看欧美| 国产日韩欧美另类| 欧美成人黄色小视频| 日韩在线免费高清视频| 伊人久久男人天堂| 日韩一区二区三区国产| 欧美老女人性视频| 色与欲影视天天看综合网| 欧美激情啊啊啊| 亚洲成年人影院在线| 亚洲va欧美va在线观看| 日韩欧美亚洲一二三区| 欧美高清在线观看| 国产精品久久久久久一区二区| 亚洲成人久久一区| 亚洲国语精品自产拍在线观看| 91精品国产高清久久久久久| 92国产精品久久久久首页| 8050国产精品久久久久久| 精品一区二区三区三区| 精品国产一区久久久| 欧美疯狂做受xxxx高潮| 精品动漫一区二区| 精品国产一区二区三区久久久| 国产亚洲欧美一区| 日韩成人中文字幕| 日本伊人精品一区二区三区介绍| 欧美在线中文字幕| 国产一区二区三区三区在线观看| 久久成人人人人精品欧| 欧美三级欧美成人高清www| 欧美日韩一区免费| 91中文字幕在线| 26uuu亚洲伊人春色| 国产成人黄色av| 热久久视久久精品18亚洲精品| 亚洲欧美色婷婷| 精品久久久国产| 久久久国产一区二区三区| 欧美一区第一页| 亚洲精品国产拍免费91在线| 一本一本久久a久久精品综合小说| 国产精品第三页| 日韩美女免费观看| 午夜精品久久久久久久99热浪潮| 亚洲国产精品久久久久| 国产成人精品免费久久久久| 日韩黄色av网站| 成人免费高清完整版在线观看| 68精品国产免费久久久久久婷婷| 久久在精品线影院精品国产| 成人黄色免费网站在线观看| 欧美在线www| 国产视频观看一区| 国产黑人绿帽在线第一区| 一区二区在线视频播放| 亚洲成人免费在线视频| 日韩av三级在线观看| 最新国产精品拍自在线播放| 日韩欧美在线字幕| 欧美裸体xxxx| 国产成人亚洲综合91| 欧美激情久久久久久| 国产精品欧美激情| 亚洲中国色老太| 欧美国产激情18| 亚洲欧美日韩一区二区三区在线| 亚洲女同性videos| 成人欧美一区二区三区黑人孕妇| 久热精品视频在线观看| 91久久久久久久一区二区| 精品久久久久人成| 97av在线播放| 91av视频导航| 97色伦亚洲国产| 欧美黑人狂野猛交老妇| 久久久国产视频| 国产精品99久久久久久久久| 日韩一区二区三区xxxx| 欧美小视频在线| 久热99视频在线观看| 正在播放欧美一区| 日韩在线免费视频| 免费成人高清视频| 欧美激情精品久久久久久蜜臀| 中国人与牲禽动交精品| 日本欧美精品在线|