欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

精美漂亮的php分页类代码

程序员文章站 2022-06-15 09:41:40
    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改css样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间...

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改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 = "<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)  //当前页小于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 .= "</div>";   
        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;}  

转载: