php 簡單簡潔分頁類

來源:互聯網
上載者:User

php 簡單簡潔分頁類
<?php
/**
 *-------------------------翻頁類----------------------*
 */
class PageClass
{
 private $myde_count;       //總記錄數
 var $myde_size;        //每頁記錄數
 private $myde_page;        //當前頁
 private $myde_page_count;  //總頁數
 private $page_url;         //頁面url
 private $page_i;           //起始頁
 private $page_ub;          //結束頁
 var $page_limit;
 
 function __construct($myde_count=0, $myde_size=1, $myde_page=1,$page_url)//建構函式
 { 
  
  $this -> myde_count = $this -> numeric($myde_count);
  $this -> myde_size  = $this -> numeric($myde_size);
  $this -> myde_page  = $this -> numeric($myde_page);
  $this -> page_limit = ($this -> myde_page * $this -> myde_size) - $this -> myde_size;
  
  $this -> page_url       = $page_url;
  
  if($this -> myde_page < 1) $this -> myde_page =1;
  
  if($this -> myde_count < 0) $this -> myde_page =0;
  
  $this -> myde_page_count  = ceil($this -> myde_count/$this -> myde_size);
  
  if($this -> myde_page_count < 1) $this -> myde_page_count = 1;
  
  if($this -> myde_page > $this -> myde_page_count) $this -> myde_page = $this -> myde_page_count;
  
  $this -> page_i = $this -> myde_page - 2;
  
        $this -> page_ub = $this -> myde_page + 2;
  
        if($this -> page_i < 1){
  
            $this -> page_ub = $this -> page_ub + (1 - $this -> page_i);
   
            $this -> page_i = 1;
        }
       
        if($this -> page_ub > $this -> myde_page_count){
  
            $this -> page_i = $this -> page_i - ($this -> page_ub - $this -> myde_page_count);
   
            $this -> page_ub = $this -> myde_page_count;
   
            if($this -> page_i < 1) $this -> page_i = 1;
        }
 }
 
 
 private function numeric($id) //判斷是否為數字
 {
  if (strlen($id)){
      if (!ereg("^[0-9]+$",$id)){
    $id = 1;
      }else{
    $id = substr($id,0,11);
    }
  }else{
   $id = 1;
  }
  return $id;
 }
 
 private function page_replace($page) //地址替換
 {
  return str_replace("{page}", $page, $this -> page_url);
 }
 
 
 private function myde_home() //首頁
 {
  if($this -> myde_page != 1){
  
   return "    <li class="page_a"><a href="".$this -> page_replace(1).""  title="首頁" >首頁</a></li>n";
   
  }else{
  
   return "    <li>首頁</li>n";
   
  }
 }
 
 private function myde_prev() //上一頁
 {
  if($this -> myde_page != 1){
  
   return "    <li class="page_a"><a href="".$this -> page_replace($this->myde_page-1) .""  title="上一頁" >上一頁</a></li>n";
   
  }else{
  
   return "    <li>上一頁</li>n";
   
  }
 }
 
 private function myde_next() //下一頁
 {
  if($this -> myde_page != $this -> myde_page_count){
  
    return "    <li class="page_a"><a href="".$this -> page_replace($this->myde_page+1) .""  title="下一頁" >下一頁</a></li>n";
    
  }else{
  
   return "    <li>下一頁</li>n";
   
  }
 }
 
 private function myde_last() //尾頁
 {
  if($this -> myde_page != $this -> myde_page_count){
  
    return "    <li class="page_a"><a href="".$this -> page_replace($this -> myde_page_count).""  title="尾頁" >尾頁</a></li>n";
    
  }else{
  
   return "    <li>尾頁</li>n";
   
  }
 }
 
 function myde_write($id='page') //輸出
 {
  $str  = "<div id="".$id."" class="pages">n  <ul>n  ";
  
  $str .= "  <li>總記錄:<span>".$this -> myde_count."</span></li>n";
  
  $str .= "    <li><span>".$this -> myde_page."</span>/<span>".$this -> myde_page_count."</span></li>n";
  
  $str .= $this -> myde_home();
  
  $str .= $this -> myde_prev();
  
  for($page_for_i = $this -> page_i;$page_for_i <= $this -> page_ub; $page_for_i++){
  
   if($this -> myde_page == $page_for_i){
   
             $str .= "    <li class="on">".$page_for_i."</li>n";
    
   }
   
   else{
   
    $str .= "    <li class="page_a"><a href="".$this -> page_replace($page_for_i)."" title="第".$page_for_i."頁">";
    
    $str .= $page_for_i . "</a></li>n";
    
   }
        }
  $str .= $this -> myde_next();
  
  $str .= $this -> myde_last();
  
  $str .= "    <li class="pages_input"><input type="text" value="".$this -> myde_page.""";
  
  $str .= " onkeydown="javascript: if(event.keyCode==13){ location='";
  
  $str .= $this -> page_replace("'+this.value+'")."';return false;}"";
  
  $str .= " title="輸入您想要到達的頁碼" /></li>n";
  
  $str .= "  </ul>n  <div class="page_clear"></div>n</div>";
  
  return $str;
 }
}
/*-------------------------執行個體--------------------------------*
$page = new PageClass(1000,5,$_GET['page'],'?page={page}');//用於動態
$page = new PageClass(1000,5,$_GET['page'],'list-{page}.html');//用於靜態或者偽靜態
$page -> myde_write();//顯示
*/
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.