經典php 分頁類- php通用分頁類

來源:互聯網
上載者:User

 
<?php  
 class My_Lib_pages{  
  
   private  $each_disNums;//每頁顯示的條目數  
   private  $nums;//總條目數  
   var  $current_page;//當前被選中的頁  
   private  $sub_pages;//每次顯示的頁數  
   private  $pageNums;//總頁數  
   private  $page_array = array();//用來構造分頁的數組  
   private  $subPage_link;//每個分頁的連結  
   private  $subPage_type;//顯示分頁的類型  
    /* 
    __construct是SubPages的建構函式,用來在建立類的時候自動運行. 
    @$each_disNums   每頁顯示的條目數 
    @nums     總條目數 
    @current_num     當前被選中的頁 
    @sub_pages       每次顯示的頁數 
    @subPage_link    每個分頁的連結 
    @subPage_type    顯示分頁的類型 
  
    當@subPage_type=1的時候為普通分頁模式 
    example:   共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] 
    當@subPage_type=2的時候為經典分頁樣式 
    example:   當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁] 
    */ 
   function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){  
    $this->each_disNums=intval($each_disNums);
    $nums = $nums==0 ? 1: $nums;
    $this->nums=intval($nums);
    $this->pageNums=ceil($nums/$each_disNums);
    $this->current_page=intval($current_page);
    $this->current_page=  $this->current_page<=0 ? 1: $this->current_page; 
    $this->current_page= $this->current_page > $this->pageNums ? 1 : $this->current_page;
    $this->sub_pages=intval($sub_pages);  
    $this->subPage_link=$subPage_link;   
    $this->show_SubPages($subPage_type);   
    //echo $this->pageNums."--".$this->sub_pages;  
   }  
  
  
   /* 
  __destruct解構函式,當類不在使用的時候調用,該函數用來釋放資源。 
    */ 
   function __destruct(){  
  unset($each_disNums);  
  unset($nums);  
  unset($current_page);  
  unset($sub_pages);  
  unset($pageNums);  
  unset($page_array);  
  unset($subPage_link);  
  unset($subPage_type);  
    }  
  
   /* 
  show_SubPages函數用在建構函式裡面。而且用來判斷顯示什麼樣子的分頁   
    */ 
   function show_SubPages($subPage_type){  
  if($subPage_type == 1){  
  $this->subPageCss1();  
  }elseif ($subPage_type == 2){  
  $this->subPageCss2();  
  }  
    }  
  
  
   /* 
  用來給建立分頁的數組初始化的函數。 
    */ 
   function initArray(){  
  for($i=0;$i<$this->sub_pages;$i++){  
  $this->page_array[$i]=$i;  
  }  
  return $this->page_array;  
    }  
  
  
   /* 
  construct_num_Page該函數使用來構造顯示的條目 
  即使:[1][2][3][4][5][6][7][8][9][10] 
    */ 
   function construct_num_Page(){  
  if($this->pageNums < $this->sub_pages){  
  $current_array=array();  
   for($i=0;$i<$this->pageNums;$i++){   
   $current_array[$i]=$i+1;  
   }  
  }else{  
  $current_array=$this->initArray();  
   if($this->current_page <= 3){  
    for($i=0;$i<count($current_array);$i++){  
    $current_array[$i]=$i+1;  
    }  
   }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){  
    for($i=0;$i<count($current_array);$i++){  
    $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;  
    }  
   }else{  
    for($i=0;$i<count($current_array);$i++){  
    $current_array[$i]=$this->current_page-2+$i;  
    }  
   }  
  }  
   
  return $current_array;  
    }  
  
   /* 
    構造普通模式的分頁 
    共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] 
    */ 
   function subPageCss1(){  
    $subPageCss1Str="";  
    $subPageCss1Str.="共".$this->nums."條記錄,";  
    $subPageCss1Str.="每頁顯示".$this->each_disNums."條,";  
    $subPageCss1Str.="當前第".$this->current_page."/".$this->pageNums."頁 ";  
  if($this->current_page > 1){  
  $firstPageUrl=$this->subPage_link."1";  
  $prewPageUrl=$this->subPage_link.($this->current_page-1);  
  $subPageCss1Str.="[<a href='$firstPageUrl'>首頁</a>] ";  
  $subPageCss1Str.="[<a href='$prewPageUrl'>上一頁</a>] ";  
  }else {  
  $subPageCss1Str.="[首頁] ";  
  $subPageCss1Str.="[上一頁] ";  
  }  
   
  if($this->current_page < $this->pageNums){  
  $lastPageUrl=$this->subPage_link.$this->pageNums;  
  $nextPageUrl=$this->subPage_link.($this->current_page+1);  
  $subPageCss1Str.=" [<a href='$nextPageUrl'>下一頁</a>] ";  
  $subPageCss1Str.="[<a href='$lastPageUrl'>尾頁</a>] ";  
  }else {  
  $subPageCss1Str.="[下一頁] ";  
  $subPageCss1Str.="[尾頁] ";  
  }  
   
  return $subPageCss1Str;  
   
    }  
  
  
   /* 
    構造傳統模式的分頁 
    當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁] 
    */ 
   function subPageCss2(){  
    $subPageCss2Str="";  
    $subPageCss2Str.="當前第<span style=color:red;>".$this->current_page."</span>/".$this->pageNums."頁 ";  
   
   
  if($this->current_page > 1){  
  $firstPageUrl=$this->subPage_link."1";  
  $prewPageUrl=$this->subPage_link.($this->current_page-1);  
  $subPageCss2Str.="<a href='$firstPageUrl'>首頁</a> ";  
  $subPageCss2Str.="<a href='$prewPageUrl'><<</a>";  
  }else {
  $subPageCss2Str.="<span class=disabled>首頁</span>";
  $subPageCss2Str.="<span class=disabled><<</span>";
  }  
   
    $a=$this->construct_num_Page();  
  for($i=0;$i<count($a);$i++){  
  $s=$a[$i];  
   if($s == $this->current_page ){  
   $subPageCss2Str.="<span style='color:red;font-weight:bold;'>".$s."</span>";  
   }else{  
   $url=$this->subPage_link.$s;  
   $subPageCss2Str.="<span class=current><a href='$url'>".$s."</a></span>";  
   }  
  }   
  if($this->current_page < $this->pageNums){  
  $lastPageUrl=$this->subPage_link.$this->pageNums;  
  $nextPageUrl=$this->subPage_link.($this->current_page+1);  
  $subPageCss2Str.=" <a href='$nextPageUrl'>>></a> ";  
  $subPageCss2Str.="<a href='$lastPageUrl'>尾頁</a> ";  
  }else {
  $subPageCss2Str.="<span class=disabled>>></span>";
  $subPageCss2Str.="<span class=disabled>尾頁</span>";
  }    
  return $subPageCss2Str;  
    }  
 }  
?>  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.