自己写的简易分页类

来源:互联网 发布:网络诽谤司法解释 编辑:程序博客网 时间:2024/04/29 22:02

/** 燕十八 公益PHP培训 

课堂地址:YY频道88354001 

学习社区:www.zixue.it **/

<?php
    class pageLib{        private $totalNum;//总记录数        private $pageRow;//每页的记录数        private $pageNum;//一共有几页        private $pageNow;//当前页        private $sideNum=1;//当前页左右两边各显示多少个页码连接private $parm=PAGE_PARM;//分页的参数,比如page,依据你自己的定义private $limit;//limit语句        public function __construct($totalNum,$pageRow,$parm=''){             $this->totalNum=$totalNum;             $this->pageRow=$pageRow; if($parm!=''){         $this->parm=$parm;             }             $this->pageNow=isset($_GET[$this->parm])?$_GET[$this->parm]:1;             $this->pageNum=ceil($totalNum/$this->pageRow);  $startpage=$this->pageNow-1; $this->limit='limit '.$startpage*$this->pageRow.','.$this->pageRow;             }        public function __get($key){            return $this->$key;        }        private function first(){               if($this->pageNow>($this->sideNum+2)){            return  "<a href='".$this->url().$this->parm."=1'> [1] ...</a>";            }if($this->pageNow==1){return '';}                        return  "<a href='".$this->url().$this->parm."=1'> [1] </a>";        }                        private function last(){           if(($this->pageNow<$this->pageNum-$this->sideNum-1)){            return  "<a href='".$this->url().$this->parm."=".$this->pageNum."'> ... [".$this->pageNum."] </a>";          }  if($this->pageNow==$this->pageNum){return '';}             return  "<a href='".$this->url().$this->parm."=".$this->pageNum."'> [".$this->pageNum."] </a>";        }                private function pagelist(){            $str='';           //当前页左边                             if($this->pageNow>(1+$this->sideNum+1)){//                        for($i=1;$i<=$this->sideNum;$i++){                            $str.="<a href='".$this->url().$this->parm."=".($this->pageNow-$i)."'> [".($this->pageNow-$i)."] </a>";                        }                         }else{                            for($i=$this->pageNow-1;$i>1;$i--){                            $str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";                            }                             }                                        $str.="<a onclick='return false;' href='".$this->url().$this->parm."=".$this->pageNow."'><span class='page_now'> ".$this->pageNow." </span></a>";//当前页            //当前右边                               if(($this->pageNow<$this->pageNum-$this->sideNum-1)){                        for($i=1;$i<=$this->sideNum;$i++){                                                        $str.="<a href='".$this->url().$this->parm."=".($this->pageNow+$i)."'> [".($this->pageNow+$i)."] </a>";                        }                    }else{                            for($i=$this->pageNow+1;$i<$this->pageNum;$i++){                                $str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";                            }                    }                                        return $str;        }                private function prev(){            if($this->pageNow==1){//当前是第一页                $prevnum=1;            }else{                $prevnum=$this->pageNow-1;//上一页的页码            }            $str.="<a href='".$this->url().$this->parm."=".$prevnum."'>".上一页." </a>";            return $str;        }                private function next(){            $str='';            if($this->pageNow==$this->pageNum){//当前是最后一页                $nextnum=$this->pageNow;//下一页的页码            }else{                $nextnum=$this->pageNow+1;            }            $str.="<a class='next' href='".$this->url().$this->parm."=".$nextnum."'>".下一页." </a>";            return $str;        }        //生成urlprivate function url(){                    $p=$this->parm;//分页的参数   $url=parse_url($_SERVER['REQUEST_URI']);   if(isset($url['query'])){        parse_str($url['query'],$a);     unset($a[$p]);if(!empty($a)){                        return $url['path'].'?'.http_build_query($a).'&';}return $url['path'].'?';   }   return $url['path'].'?';}                        public function show(){$str.=$this->prev();            $str.=$this->first();            $str.=$this->pagelist();            $str.=$this->last();                    $str.=$this->next();$str.= "<span style='margin-right:10px;' class='f_l f6'>总计<strong>".$this->totalNum.'</strong>个产品</span>';            return $str;        }    }?>

原创粉丝点击