php分頁類代碼

來源:互聯網
上載者:User
這是一款簡單,方便,功能齊全的分頁類,可以根據自己的需要更改CSS樣式檔案以實現分頁顏色的控制,利用php分頁類,可以省去自己很多時間,只需要在分頁的地方嵌入即可,下面看下使用方法:

1,在head裡包含pager.css

    <link href="pager.css" type="text/css" rel="stylesheet" />

2,在分頁處進行類的執行個體化:

<?php         include "pager.class.php";      $CurrentPage=isset($_GET['page'])?$_GET['page']:1;      //die($CurrentPage);         $myPage=new pager(1300,intval($CurrentPage));          $pageStr= $myPage->GetPagerContent();      //echo $pageStr;         $myPage=new pager(90,intval($CurrentPage));          $pageStr= $myPage->GetPagerContent();      echo $pageStr;        ?>

3,讀取mysql資料庫和分頁計算檔案需要自己寫出來。例如:

$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); 這樣才能調到 mysql 資料庫和當前頁碼等。

下面是一共包含的三個檔案:(1) index.php:調用分頁類,顯示分頁 (2) pager.class.php:php分頁類 (3)pager.css:css樣式美化檔案

(1) index.php:

<head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>----分頁示範-----</title>    <link href="pager.css" type="text/css" rel="stylesheet" />    </head>    <body>        <?php         include "pager.class.php";         $CurrentPage=isset($_GET['page'])?$_GET['page']:1;         //die($CurrentPage);         $myPage=new pager(1300,intval($CurrentPage));          $pageStr= $myPage->GetPagerContent();         //echo $pageStr;         $myPage=new pager(90,intval($CurrentPage));          $pageStr= $myPage->GetPagerContent();         echo $pageStr;        ?>    </body>    </html>

(2) pager.class.php:

<?php    /*    * PHP分頁類    * @package Page    * @Created 2013-03-27    * @Modify  2013-03-27    * @link http://www.60ie.net    * Example:          $myPage=new Pager(1300,intval($CurrentPage));          $pageStr= $myPage->GetPagerContent();          echo $pageStr;    */   class Pager {        private $pageSize = 10;        private $pageIndex;        private $totalNum;        private $totalPagesCount;        private $pageUrl;        private static $_instance;        public function __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10,$p_initNum=3,$p_initMaxNum=5) {            if (! isset ( $p_totalNum ) || !isset($p_pageIndex)) {                die ( "pager initial error" );            }            $this->totalNum = $p_totalNum;            $this->pageIndex = $p_pageIndex;            $this->pageSize = $p_pageSize;            $this->initNum=$p_initNum;            $this->initMaxNum=$p_initMaxNum;            $this->totalPagesCount= ceil($p_totalNum / $p_pageSize);            $this->pageUrl=$this->_getPageUrl();             $this->_initPagerLegal();        }              /**       * 擷取去除page部分的當前URL字串       *       * @return String URL字串       */     private function _getPageUrl() {            $CurrentUrl = $_SERVER["REQUEST_URI"];            $arrUrl     = parse_url($CurrentUrl);            $urlQuery   = $arrUrl["query"];            if($urlQuery){                $urlQuery  = ereg_replace("(^|&)page=" . $this->pageIndex, "", $urlQuery);                $CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl);                if($urlQuery){                     $CurrentUrl.="&page";                }                else $CurrentUrl.="page";            } else {                $CurrentUrl.="?page";            }        return $CurrentUrl;      }      /*      *設定頁面參數合法性      *@return void     */     private function _initPagerLegal()      {          if((!is_numeric($this->pageIndex)) ||  $this->pageIndex<1)          {              $this->pageIndex=1;          }elseif($this->pageIndex > $this->totalPagesCount)          {              $this->pageIndex=$this->totalPagesCount;          }                }    //$this->pageUrl}={$i}    //{$this->CurrentUrl}={$this->TotalPages}        public function GetPagerContent() {            $str = "<p class=\"Pagination\">";            //首頁 上一頁            if($this->pageIndex==1)            {                $str .="<a href='javascript:void(0)' class='tips' title='首頁'>首頁</a> "."\n";                $str .="<a href='javascript:void(0)' class='tips' title='上一頁'>上一頁</a> "."\n"."\n";            }else           {                $str .="<a href='{$this->pageUrl}=1' class='tips' title='首頁'>首頁</a> "."\n";                        $str .="<a href='{$this->pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一頁'>上一頁</a> "."\n"."\n";            }                        /*           除首末後 頁面分頁邏輯           */            //10頁(含)以下             $currnt="";             if($this->totalPagesCount<=10)             {                for($i=1;$i<=$this->totalPagesCount;$i++)                {                           if($i==$this->pageIndex)                           {    $currnt=" class='current'";}                           else                          {    $currnt="";    }                            $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;                }             }else                                //10頁以上             {   if($this->pageIndex<3)  //當前頁小於3                 {                         for($i=1;$i<=3;$i++)                         {                             if($i==$this->pageIndex)                               {    $currnt=" class='current'";}                             else                            {    $currnt="";    }                            $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;                         }                         $str.="<span class=\"dot\">……</span>"."\n";                     for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1                     {                          $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;                     }                 }elseif($this->pageIndex<=5)   //   5 >= 當前頁 >= 3                 {                     for($i=1;$i<=($this->pageIndex+1);$i++)                     {                          if($i==$this->pageIndex)                           {    $currnt=" class='current'";}                           else                          {    $currnt="";    }                            $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;                     }                     $str.="<span class=\"dot\">……</span>"."\n";                     for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1                     {                          $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;                     }                 }elseif(5<$this->pageIndex  &&  $this->pageIndex<=$this->totalPagesCount-5 )             //當前頁大於5,同時小於總頁數-5                 {                     for($i=1;$i<=3;$i++)                     {                         $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;                     }                      $str.="<span class=\"dot\">……</span>";                                  for($i=$this->pageIndex-1 ;$i<=$this->pageIndex+1 && $i<=$this->totalPagesCount-5+1;$i++)                     {                           if($i==$this->pageIndex)                           {    $currnt=" class='current'";}                           else                          {    $currnt="";    }                            $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;                     }                     $str.="<span class=\"dot\">……</span>";                     for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)                     {                          $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;                     }                 }else                {                      for($i=1;$i<=3;$i++)                     {                         $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;                     }                      $str.="<span class=\"dot\">……</span>"."\n";                      for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)//功能1                     {                           if($i==$this->pageIndex)                           {    $currnt=" class='current'";}                           else                          {    $currnt="";    }                            $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;                     }                }                    }                                      /*           除首末後 頁面分頁邏輯結束           */           //下一頁 末頁            if($this->pageIndex==$this->totalPagesCount)            {                   $str .="\n"."<a href='javascript:void(0)' class='tips' title='下一頁'>下一頁</a>"."\n" ;                $str .="<a href='javascript:void(0)' class='tips' title='末頁'>末頁</a>"."\n";                            }else           {                $str .="\n"."<a href='{$this->pageUrl}=".($this->pageIndex+1)."' class='tips' title='下一頁'>下一頁</a> "."\n";                $str .="<a href='{$this->pageUrl}={$this->totalPagesCount}' class='tips' title='末頁'>末頁</a> "."\n" ;            }                   $str .= "</p>";            return $str;        }          /**    * 獲得執行個體    * @return      */   //  static public function getInstance() {    //      if (is_null ( self::$_instance )) {    //          self::$_instance = new pager ();    //      }    //      return self::$_instance;    //  }       }    ?>

(3) pager.css:

body,html{ padding:0px; margin:0px; color:#333333; font-family:"宋體",Arial,Lucida,Verdana,Helvetica,sans-serif; font-size:12px; line-height:150%;}    h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0; padding:0; border:none; list-style-type:none;}    /**前台分頁樣式**/   .Pagination {margin:10px 0 0;padding:5px 0;text-align:rightright; height:20px; line-height:20px; font-family:Arial, Helvetica, sans-serif,"宋體";}    .Pagination a {margin-left:2px;padding:2px 7px 2px;}    .Pagination .dot{ border:medium none; padding:4px 8px}    .Pagination a:link, .Pagination a:visited {border:1px solid #dedede;color:#696969;text-decoration:none;}    .Pagination a:hover, .Pagination a:active, .Pagination a.current:link, .Pagination a.current:visited {border:1px solid #dedede;color:#fff; background-color:#ff6600; background-image:none; border:#ff6600 solid 1px;}    .Pagination .selectBar{ border:#dedede solid 1px; font-size:12px; width:95px; height:21px; line-height:21px; margin-left:10px; display:inline}    .Pagination a.tips{_padding:4px 7px 1px;}

聯繫我們

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