分享一个php的分页类
/*
 *@ max最大页数
 *@ url链接url
 *@ step页码间隔,最小3,最大9
 *@ config: pre上一页,next下一页,pages页码,select跳转
 */
 class Page{ 
     private $pageUrl;
     private $query;
     private $max;
     private $step;
     private $config=array('pre','next','pages');
     
     public function __construct($url = "", $max = 100,$step = 3){
         $urlArr=parse_url($url);
         $pageUrl='';
         $query=array();
         isset($urlArr['scheme']) && $pageUrl.=$urlArr['scheme'].'://';
         isset($urlArr['host']) && $pageUrl.=$urlArr['host'];
         isset($urlArr['path']) && $pageUrl.=$urlArr['path'];
         isset($urlArr["query"]) && parse_str($urlArr["query"],$query);
         $this->pageUrl=$pageUrl;
         $this->query=$query;
         $this->max=$max;
         $this->step=$step;
     }
     
     public function setConfig($cfg=array()){
         $this->config=$cfg;
         return $this;
     }
     
     public function html($nowPage=1){
         $html='';
         if(in_array('pre',$this->config)){
             $this->query['page']=$nowPage-1;
             $querystr=http_build_query($this->query);
             $html.=$nowPage == 1 ? '<a href="javascript:;" class="pre disabled">上一页</a>' : '<a href="'.$this->pageUrl.'?'.$querystr.'" class="pre">上一页</a>';
         }
         $preDiff=$this->step - ($this->max - $nowPage);
         $preDiff=$preDiff > 0 ? $preDiff : 0;
         $nextDiff=$this->step - ($nowPage - 1);
         $nextDiff=$nextDiff > 0 ? $nextDiff : 0;
         for($i=($this->step + $preDiff);$i>0;$i--){
             $page=$nowPage - $i;
             $this->query['page']=$page;
             $querystr=http_build_query($this->query);
             if($page > 0){
                 $html.='<a href="'.$this->pageUrl.'?'.$querystr.'" class="item">'.$page.'</a>';
             }
         }
         $html.='<a href="javascript:;" class="item active">'.$nowPage.'</a>';
         for($i=1;$i<=($this->step + $nextDiff);$i++){
             $page=$nowPage + $i;
             $this->query['page']=$page;
             $querystr=http_build_query($this->query);
             $page <= $this->max && $html.='<a href="'.$this->pageUrl.'?'.$querystr.'" class="item">'.$page.'</a>';
         }
         if(in_array('next',$this->config)){
             $this->query['page']=$nowPage+1;
             $querystr=http_build_query($this->query);
             $html.=$nowPage >= $this->max ?'<a href="javascript:;" class="next disabled">下一页</a>' : '<a href="'.$this->pageUrl.'?'.$querystr.'" class="next">下一页</a>';
         }
         return $html;
     }
 }
咳咳,刚开始规划的功能,由于懒了点,写的时候没有写完,朋友可以补补哈,目前功能是够用。。。。
 pages页码配置无效,直接默认就有了,,
 select跳转预留了,还没写。。。。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号