Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Paging-Klassencode

PHP-Paging-Klassencode

高洛峰
高洛峰Original
2017-03-16 15:49:221675Durchsuche

Dies ist eine einfache, praktische und voll funktionsfähige Paging-Klasse. Mit der PHP-Paging-Klasse können Sie viel Zeit sparen Sie müssen es nur irgendwo einbetten. So verwenden Sie es:

1. Fügen Sie pager.css in den Kopf ein

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

2. Instanziieren Sie die Klasse am Paging-Speicherort:

<?php    
     include "pager.class.php";    
  $CurrentPage=isset($_GET[&#39;page&#39;])?$_GET[&#39;page&#39;]: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. Das Lesen der MySQL-Datenbank und die Paging-Berechnungsdateien müssen von Ihnen selbst geschrieben werden. Zum Beispiel:

$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); Auf diese Weise können die MySQL-Datenbank und die aktuelle Seitennummer übertragen werden.

Die folgenden drei Dateien sind insgesamt enthalten: (1) index.php: Aufruf der Paging-Klasse und Anzeige der Paging-Datei (2) pager.class.php: PHP-Paging-Klasse (3) pager.css: CSS Stilverschönerungsdatei

(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[&#39;page&#39;])?$_GET[&#39;page&#39;]: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=&#39;javascript:void(0)&#39; class=&#39;tips&#39; title=&#39;首页&#39;>首页</a> "."\n";    
            $str .="<a href=&#39;javascript:void(0)&#39; class=&#39;tips&#39; title=&#39;上一页&#39;>上一页</a> "."\n"."\n";    
        }else   
        {    
            $str .="<a href=&#39;{$this->pageUrl}=1&#39; class=&#39;tips&#39; title=&#39;首页&#39;>首页</a> "."\n";    
                    $str .="<a href=&#39;{$this->pageUrl}=".($this->pageIndex-1)."&#39; class=&#39;tips&#39; title=&#39;上一页&#39;>上一页</a> "."\n"."\n";    
        }    

            

        /*   

        除首末后 页面分页逻辑   

        */   
         //10页(含)以下    
         $currnt="";    
         if($this->totalPagesCount<=10)    
         {    

            for($i=1;$i<=$this->totalPagesCount;$i++)    

            {    
                       if($i==$this->pageIndex)    
                       {    $currnt=" class=&#39;current&#39;";}    
                       else   
                       {    $currnt="";    }    
                        $str .="<a href=&#39;{$this->pageUrl}={$i} &#39; {$currnt}>$i</a>"."\n" ;    
            }    
         }else                                //10页以上    
         {   if($this->pageIndex<3)  //当前页小于3    
             {    
                     for($i=1;$i<=3;$i++)    
                     {    
                         if($i==$this->pageIndex)    
                           {    $currnt=" class=&#39;current&#39;";}    
                         else   
                         {    $currnt="";    }    
                        $str .="<a href=&#39;{$this->pageUrl}={$i} &#39; {$currnt}>$i</a>"."\n" ;    
                     }    

                     $str.="<span class=\"dot\">……</span>"."\n";    

                 for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1    
                 {    
                      $str .="<a href=&#39;{$this->pageUrl}={$i}&#39; >$i</a>"."\n" ;    

                 }    
             }elseif($this->pageIndex<=5)   //   5 >= 当前页 >= 3    
             {    
                 for($i=1;$i<=($this->pageIndex+1);$i++)    
                 {    
                      if($i==$this->pageIndex)    
                       {    $currnt=" class=&#39;current&#39;";}    
                       else   
                       {    $currnt="";    }    
                        $str .="<a href=&#39;{$this->pageUrl}={$i} &#39; {$currnt}>$i</a>"."\n" ;    

                 }    
                 $str.="<span class=\"dot\">……</span>"."\n";    

                 for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1    
                 {    
                      $str .="<a href=&#39;{$this->pageUrl}={$i}&#39; >$i</a>"."\n" ;    

                 }    

             }elseif(5<$this->pageIndex  &&  $this->pageIndex<=$this->totalPagesCount-5 )             //当前页大于5,同时小于总页数-5    

             {    

                 for($i=1;$i<=3;$i++)    
                 {    
                     $str .="<a href=&#39;{$this->pageUrl}={$i}&#39; >$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=&#39;current&#39;";}    
                       else   
                       {    $currnt="";    }    
                        $str .="<a href=&#39;{$this->pageUrl}={$i} &#39; {$currnt}>$i</a>"."\n" ;    
                 }    
                 $str.="<span class=\"dot\">……</span>";    

                 for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)    
                 {    
                      $str .="<a href=&#39;{$this->pageUrl}={$i}&#39; >$i</a>"."\n" ;    

                 }    
             }else   
             {    

                  for($i=1;$i<=3;$i++)    
                 {    
                     $str .="<a href=&#39;{$this->pageUrl}={$i}&#39; >$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=&#39;current&#39;";}    
                       else   
                       {    $currnt="";    }    
                        $str .="<a href=&#39;{$this->pageUrl}={$i} &#39; {$currnt}>$i</a>"."\n" ;    

                 }    
            }           

         }    

             

             
        /*   

        除首末后 页面分页逻辑结束   

        */   

        //下一页 末页    
        if($this->pageIndex==$this->totalPagesCount)    
        {       
            $str .="\n"."<a href=&#39;javascript:void(0)&#39; class=&#39;tips&#39; title=&#39;下一页&#39;>下一页</a>"."\n" ;    
            $str .="<a href=&#39;javascript:void(0)&#39; class=&#39;tips&#39; title=&#39;末页&#39;>末页</a>"."\n";    

                
        }else   
        {    
            $str .="\n"."<a href=&#39;{$this->pageUrl}=".($this->pageIndex+1)."&#39; class=&#39;tips&#39; title=&#39;下一页&#39;>下一页</a> "."\n";    
            $str .="<a href=&#39;{$this->pageUrl}={$this->totalPagesCount}&#39; class=&#39;tips&#39; title=&#39;末页&#39;>末页</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;}

Weitere Artikel zum PHP-Paging-Code finden Sie auf der chinesischen PHP-Website!

Verwandte Artikel:

Verwendung von PHP zur Implementierung einfacher Paging-Klassen und deren detaillierte Verwendungsmethoden

PHP-Paging Detaillierte Erklärung zur Produktion von PHP-Paging-Anzeigen

Detaillierte Erläuterung des PHP-Paging-Prinzips

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn