溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php分頁類代碼是怎么樣的

發(fā)布時間:2021-10-14 14:13:44 來源:億速云 閱讀:160 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了php分頁類代碼是怎么樣的,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    這是一款簡單,方便,功能齊全的分頁類,可以根據(jù)自己的需要更改CSS樣式文件以實現(xiàn)分頁顏色的控制,利用php分頁類,可以省去自己很多時間,只需要在分頁的地方嵌入即可,下面看下使用方法:

    1,在head里包含pager.css

代碼如下:

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

    2,在分頁處進(jìn)行類的實例化:

代碼如下:

<?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數(shù)據(jù)庫和分頁計算文件需要自己寫出來。例如:

    $info=mysql_query("select * from member order by id desc limit $offset,$info_num");  這樣才能調(diào)到 mysql 數(shù)據(jù)庫和當(dāng)前頁碼等。

    下面是一共包含的三個文件:(1) index.php:調(diào)用分頁類,顯示分頁 (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部分的當(dāng)前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;   

  }   
  /*  
   *設(shè)置頁面參數(shù)合法性  
   *@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 = "<div 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)  //當(dāng)前頁小于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 >= 當(dāng)前頁 >= 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 )             //當(dāng)前頁大于5,同時小于總頁數(shù)-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" ;   

                 }   
            }          

         }   

            

            
        /*  

        除首末后 頁面分頁邏輯結(jié)束  

        */  

        //下一頁 末頁   
        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 .= "</div>";   
        return $str;   
    }   

  

  
/**  
 * 獲得實例  
 * @return    
 */  
//  static public function getInstance() {   
//      if (is_null ( self::$_instance )) {   
//          self::$_instance = new pager ();   
//      }   
//      return self::$_instance;   
//  }   

  
}   
?>  

    (3) pager.css:

復(fù)制代碼 代碼如下:


body,html{ padding:0px; margin:0px; color:#333333; font-family:"宋體",Arial,Lucida,Verdana,Helvetica,sans-serif; font-size:12px; line-height:150%;}   

h2,h3,h4,h5,h6,h7,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;}  

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php分頁類代碼是怎么樣的”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI