网络编程
位置:首页>> 网络编程>> php编程>> 精美漂亮的php分页类代码

精美漂亮的php分页类代码

  发布时间:2023-11-22 08:28:09 

标签: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;}  

转载:http://60ie.net/article/8/365.html

0
投稿

猜你喜欢

  • HTML文档与CSS的关联常见有4种方式:1.使用link标记<link rel="stylesheet"
  • 字体设计是人类商业活动的需求,它随着时代和科学技术的进步而不断地变化着。被广泛应用于网络生活的各个方面。现代字体设计在计算机技术的应用中已经
  • Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。   1、
  • 如何使整个页面内容居中,如何使高度适应内容自动伸缩。这是学习CSS布局最常见的问题。下面就给出一个实际的例子,并详细解释。(本文的经验和是蓝
  • 当然,页面最好不要刷新,但是,拷贝一下浏览器的链接,又希望是下次能定位到你播发的那个视频。方法很简单,改变一下 url 的 fragment
  • 继续上一篇,针对Bootstrap Metronic菜单栏整理的笔记分享给大家,供大家参考,具体内容如下1.简介1)  .环境配置
  • 基本思路使用GDAL创建Shapefile数据的基本步骤如下:使用osgeo.ogr.Driver的CreateDataSource()方法
  • 前言: 这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测
  • 我把数据库操作类整理了一下,它包含了常用的数据库操作,由三种方式:简单的SQL拼接字符串的形式,SQL语句使用参数的形式和存储过程的形式,每
  • PHP crypt() 函数定义和用法crypt() 函数返回使用 DES、Blowfish 或 MD5 算法加密的字符串。在不同的操作系统
  • 一个网站信息结构需要表现给用户看,这样用户才能知道当前是在哪儿,才有可能去猜测某个内容可能会在哪儿。如何表现网站的信息结构给用户呢?用导航。
  • 本文实例讲述了js控制多图左右滚动切换效果。分享给大家供大家参考。具体如下:这是一款纯js实现点击左右按钮图片自动左右平滑滚动,默认5个一组
  • 当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!方法
  • 功能是:以一个关键字为索引,搜索整个数据库,然后返回那个关键字所在的表名和列名。(很赞...特别是入侵的时候找不到用户名与密码所在的表的时候
  • python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在pyth
  • 百度有啊2009年情人节logo——大纸袋GG给大纸袋MM送了枝玫瑰花,大纸袋MM奖励了大纸袋GG一个吻,好可爱!淘宝网2009年情人节lo
  • 本文实例讲述了Python计时相关操作。分享给大家供大家参考,具体如下:内容目录:1. 时间戳2. 当前时间3. 时间差4. python中
  • 1.sort.Sort介绍使用sort.Slice进行排序,因为slice把struct抽象化了,且slice封装过了,简单的基础类型可以使
  • 等了好久的小程序,终于在近日曝光了。现在就带大家来尝尝鲜。以下是一张随便看看的图。一、构建微信小程序的步骤下载开发工具考虑到微信0.9.09
  • 在html 5增加了新元素header、footer,测试过发现IE不能解析html 5新增的元素。代码如下:<!DOCTYPE&nb
手机版 网络编程 asp之家 www.aspxhome.com