精美漂亮的php分页类代码


Posted in PHP onApril 02, 2013

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改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

PHP 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 #PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 #PHP
PHP 数组和字符串互相转换实现方法
Mar 26 #PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 #PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 #PHP
自定义php类(查找/修改)xml文档
Mar 26 #PHP
php中DOMElement操作xml文档实例演示
Mar 26 #PHP
You might like
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP时间函数使用详解
2019/03/21 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python绘制直线的方法
2018/06/30 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
jupyter实现重新加载模块
2020/04/16 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
活动邀请函范文
2014/01/19 职场文书
商场消防演习方案
2014/02/12 职场文书
教师节促销活动方案
2014/02/14 职场文书
班组长安全工作职责
2014/07/15 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
遗失证明范文
2015/06/19 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers