php 經典分頁類適用于所有的分頁

來源:互聯網
上載者:User
關鍵字 網路程式設計 PHP教程

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


 


<?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->pageNum s - $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.