zoukankan      html  css  js  c++  java
  • 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> "." ";    
                $str .="<a href='javascript:void(0)' class='tips' title='上一页'>上一页</a> "." "." ";    
            }else   
            {    
                $str .="<a href='{$this->pageUrl}=1' class='tips' title='首页'>首页</a> "." ";    
                        $str .="<a href='{$this->pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一页'>上一页</a> "." "." ";    
            }    

                

            /*   

            除首末后 页面分页逻辑   

            */   
             //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>"." " ;    
                }    
             }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>"." " ;    
                         }    

                         $str.="<span class="dot">……</span>"." ";    

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

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

                     }    
                     $str.="<span class="dot">……</span>"." ";    

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

                     }    

                 }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>"." " ;    
                     }    
                      $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>"." " ;    
                     }    
                     $str.="<span class="dot">……</span>";    

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

                     }    
                 }else   
                 {    

                      for($i=1;$i<=3;$i++)    
                     {    
                         $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;    
                     }    
                      $str.="<span class="dot">……</span>"." ";    

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

                     }    
                }           

             }    

                 

                 
            /*   

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

            */   

            //下一页 末页    
            if($this->pageIndex==$this->totalPagesCount)    
            {       
                $str .=" "."<a href='javascript:void(0)' class='tips' title='下一页'>下一页</a>"." " ;    
                $str .="<a href='javascript:void(0)' class='tips' title='末页'>末页</a>"." ";    

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

            $str .= "</div>";    
            return $str;    
        }    

       

       
    /**   
     * 获得实例   
     * @return     
     */   
    //  static public function getInstance() {    
    //      if (is_null ( self::$_instance )) {    
    //          self::$_instance = new pager ();    
    //      }    
    //      return self::$_instance;    
    //  }    

       
    }    
    ?>     
     

    ----调用分页类


    <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>     
     

  • 相关阅读:
    内网或无域名服务器集成微信公众号接口
    记录一次重新学习SetInternal和SetTimeout
    SQLServer日志过大导致还原失败的解决方案
    批量修改SQLServer数据库表字段属性
    收缩SQLServer数据库解决日志占用空间过大(2008R2以上版本)
    SAP GUI安装出现ocx错误提示的解决办法
    .NetCore自动转换枚举类显示自定义中文名称
    EFCore-脚手架Scaffold发生Build Failed问题的终极解决
    .NetCore自定义WebAPI返回Json的格式大小写的三种方式
    存储过程模糊搜索,按匹配率排序初探
  • 原文地址:https://www.cnblogs.com/zoupufa/p/4735654.html
Copyright © 2011-2022 走看看