Heim > php教程 > PHP源码 > 精美漂亮的php分页类代码_php实例

精美漂亮的php分页类代码_php实例

PHP中文网
Freigeben: 2016-06-01 14:33:22
Original
1199 Leute haben es durchsucht

非常精美的一款php分页类,可以直接应用到分页系统上,是一款mysql数据库分页必备的一个工具,只需要将类文件和分页CSS样式嵌入即可实现精美分页。

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法:

    1,在head里包含pager.css

复制代码 代码如下:


   


    2,在分页处进行类的实例化:


复制代码 代码如下:


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:


复制代码 代码如下:


   
   
----分页演示-----   
   
   
   
    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;   
    ?>   
   
  


(2) pager.class.php:

复制代码 代码如下:


/*
* PHP分页类
* @package Page
* @Created 2013-03-27
* @Modify 2013-03-27
* @link http://www.php.cn/
* 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 = "

";   
        //首页 上一页   
        if($this->pageIndex==1)   
        {   
            $str .="首页 "."\n";   
            $str .="上一页 "."\n"."\n";   
        }else  
        {   
            $str .="pageUrl}=1' class='tips' title='首页'>首页 "."\n";   
                    $str .="pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一页'>上一页 "."\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 .="pageUrl}={$i} ' {$currnt}>$i"."\n" ;   
            }   
         }else                                //10页以上   
         {   if($this->pageIndex<3) //当前页小于3
{
for($i=1;$i<=3;$i++)
{
if($i==$this->pageIndex)   
                           {    $currnt=" class='current'";}   
                         else  
                         {    $currnt="";    }   
                        $str .="pageUrl}={$i} ' {$currnt}>$i"."\n" ;   
                     }   

                     $str.="……"."\n";   

                 for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1   
                 {   
                      $str .="pageUrl}={$i}' >$i"."\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 .="pageUrl}={$i} ' {$currnt}>$i"."\n" ;   

                 }   
                 $str.="……"."\n";   

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

                 }   

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

             {   

                 for($i=1;$i<=3;$i++)   
                 {   
                     $str .="pageUrl}={$i}' >$i"."\n" ;   
                 }   
                  $str.="……";                
                 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 .="pageUrl}={$i} ' {$currnt}>$i"."\n" ;   
                 }   
                 $str.="……";   

                 for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)   
                 {   
                      $str .="pageUrl}={$i}' >$i"."\n" ;   

                 }   
             }else  
             {   

                  for($i=1;$i<=3;$i++)   
                 {   
                     $str .="pageUrl}={$i}' >$i"."\n" ;   
                 }   
                  $str.="……"."\n";   

                  for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)//功能1   
                 {   
                       if($i==$this->pageIndex)   
                       {    $currnt=" class='current'";}   
                       else  
                       {    $currnt="";    }   
                        $str .="pageUrl}={$i} ' {$currnt}>$i"."\n" ;   

                 }   
            }          

         }   

            

            
        /*  

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

        */  

        //下一页 末页   
        if($this->pageIndex==$this->totalPagesCount)   
        {      
            $str .="\n"."下一页"."\n" ;   
            $str .="末页"."\n";   

               
        }else  
        {   
            $str .="\n"."pageUrl}=".($this->pageIndex+1)."' class='tips' title='下一页'>下一页 "."\n";   
            $str .="pageUrl}={$this->totalPagesCount}' class='tips' title='末页'>末页 "."\n" ;   
        }          

        $str .= "

";   
        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;}  


转载:http://www.php.cn/

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage