找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 311|回复: 0
打印 上一主题 下一主题

精美漂亮的php分页类代码

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 08:22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法:
    1,在head里包含pager.css
[U]复制代码[/U] 代码如下:
   
    2,在分页处进行类的实例化:
[U]复制代码[/U] 代码如下:
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:
[U]复制代码[/U] 代码如下:
   
   
----分页演示-----   
   
   
   
    GetPagerContent();   
     //echo $pageStr;   
     $myPage=new pager(90,intval($CurrentPage));     
     $pageStr= $myPage->GetPagerContent();   
     echo $pageStr;   
    ?>   
   
   
(2) pager.class.php:
[U]复制代码[/U] 代码如下:
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->pageIndexpageIndex=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 .="首页 "."\n";   
                    $str .="上一页 "."\n"."\n";   
        }   
            
        /*   
        除首末后 页面分页逻辑   
        */   
         //10页(含)以下   
         $currnt="";   
         if($this->totalPagesCounttotalPagesCount;$i++)   
            {   
                       if($i==$this->pageIndex)   
                       {    $currnt=" class='current'";}   
                       else   
                       {    $currnt="";    }   
                        $str .="$i"."\n" ;   
            }   
         }else                                //10页以上   
         {   if($this->pageIndexpageIndex)   
                           {    $currnt=" class='current'";}   
                         else   
                         {    $currnt="";    }   
                        $str .="$i"."\n" ;   
                     }   
                     $str.="……"."\n";   
                 for($i=$this->totalPagesCount-3+1;$itotalPagesCount;$i++)//功能1   
                 {   
                      $str .="$i"."\n" ;   
                 }   
             }elseif($this->pageIndex= 当前页 >= 3   
             {   
                 for($i=1;$ipageIndex+1);$i++)   
                 {   
                      if($i==$this->pageIndex)   
                       {    $currnt=" class='current'";}   
                       else   
                       {    $currnt="";    }   
                        $str .="$i"."\n" ;   
                 }   
                 $str.="……"."\n";   
                 for($i=$this->totalPagesCount-3+1;$itotalPagesCount;$i++)//功能1   
                 {   
                      $str .="$i"."\n" ;   
                 }   
             }elseif(5pageIndex  &&  $this->pageIndextotalPagesCount-5 )             //当前页大于5,同时小于总页数-5   
             {   
                 for($i=1;$ipageUrl}={$i}]$i[/url]"."\n" ;   
                 }   
                  $str.="……";                 
                 for($i=$this->pageIndex-1 ;$ipageIndex+1 && $itotalPagesCount-5+1;$i++)   
                 {   
                       if($i==$this->pageIndex)   
                       {    $currnt=" class='current'";}   
                       else   
                       {    $currnt="";    }   
                        $str .="$i"."\n" ;   
                 }   
                 $str.="……";   
                 for($i=$this->totalPagesCount-3+1;$itotalPagesCount;$i++)   
                 {   
                      $str .="$i"."\n" ;   
                 }   
             }else   
             {   
                  for($i=1;$ipageUrl}={$i}]$i[/url]"."\n" ;   
                 }   
                  $str.="……"."\n";   
                  for($i=$this->totalPagesCount-5;$itotalPagesCount;$i++)//功能1   
                 {   
                       if($i==$this->pageIndex)   
                       {    $currnt=" class='current'";}   
                       else   
                       {    $currnt="";    }   
                        $str .="$i"."\n" ;   
                 }   
            }           
         }   
            
            
        /*   
        除首末后 页面分页逻辑结束   
        */   
        //下一页 末页   
        if($this->pageIndex==$this->totalPagesCount)   
        {      
            $str .="\n"."下一页"."\n" ;   
            $str .="末页"."\n";   
               
        }else   
        {   
            $str .="\n"."下一页 "."\n";   
            $str .="末页 "."\n" ;   
        }           
        $str .= "";   
        return $str;   
    }   
   
   
/**   
* 获得实例   
* @return     
*/   
//  static public function getInstance() {   
//      if (is_null ( self:_instance )) {   
//          self:_instance = new pager ();   
//      }   
//      return self:_instance;   
//  }   
   
}   
?>   
    (3) pager.css:
[U]复制代码[/U] 代码如下:
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 分页原理详解
  • 一个典型的PHP分页实例代码分享
  • php实现的漂亮分页方法
  • ThinkPHP使用心得分享-分页类Page的用法
  • laypage前端分页插件实现ajax异步分页
  • js多功能分页组件layPage使用方法详解
  • laypage分页控件使用实例详解
  • VUEJS实战之利用laypage插件实现分页(3)
  • 基于LayUI分页和LayUI laypage分页的使用示例
  • thinkPHP5使用laypage分页插件实现列表分页功能
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端