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;    
    //  }    
    
       
    }    
    ?>   
  • 相关阅读:
    网络编程总结
    网络编程进阶---->>> hamc模块 socketserver模块验证合法性 两者进行通信连接
    黏包
    socket概念 套接字
    网络协议
    python之路——网络基础
    模块复习 staticmethod和classmethod的区别
    Dubbo执行流程?
    Dubbo在安全机制方面是如何解决的
    Dubbo中有哪些角色?
  • 原文地址:https://www.cnblogs.com/vania/p/5019168.html
Copyright © 2011-2022 走看看