• 分页类


    <?php 
    
        class Page{
            private $total;            //总记录
            private $pagesize;        //每页显示多少条
            private $limit;            //limit
            private $page;            //当前页码
            private $pagenum;        //总页码
            private $url;            //地址
            private $bothnum;        //两边保持数子分页的量
    
            //构造方法
            public function __construct($_total, $_pagesize){
                $this->total = $_total;
                $this->pagesize = $_pagesize;
                $this->pagenum = ceil($this->total / $this->pagesize);
                $this->page = $this->setPage();
                $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.", $this->pagesize";
                $this->url = $this->setUrl();
                $this->bothnum = 2;
            }
    
            //拦截器
            public function __get($_key){
                return $this->$_key;
            }
    
            //获取当前页码
            private function setPage(){
                if(!empty($_GET['page'])){
                    if($_GET['page'] > 0 ){
                        if($_GET['page'] > $this->pagenum){
                            return $this->pagenum;
                        }else{
                            return $_GET['page'];
                        }
                    }else{
                        return 1;
                    }
                }else{
                    return 1;
                }
    
            }
    
            //获取地址
            private function setUrl(){
                $_url = $_SERVER["REQUEST_URI"];
                $_par = parse_url($_url);
                if(isset($_par['query'])){
                    parse_str($_par['query'], $_query);
                    unset($_query['page']);
                    $_url = $_par['path'].'?'.http_build_query($_query);
                }            
                return $_url;
            }
    
            //数字目录
            private function pageList(){
                for($i=$this->bothnum; $i>=1; $i--){
                    $_page = $this->page-$i;
                    if($_page < 1){
                        continue;
                    }
                    $_pagelist .= '<a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a>';
                }
                $_pagelist .= '<span class="me">'.$this->page.'</span>';
                for($i=1; $i<=$this->bothnum; $i++){
                    $_page = $this->page+$i;
                    if($_page > $this->pagenum){
                        break;
                    }
                    $_pagelist .= '<a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a>';
                }
                return $_pagelist;
            }
            //首页
            private function first(){
                if($this->page > $this->bothnum + 1){
                    return ' <a href="'.$this->url.'">1</a>... ';
                }
            }
    
            //尾页
            private function last(){
                if(($this->pagenum - $this->page) >$this->bothnum ){
                    return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'">'.$this->pagenum.'</a> ';
                }
            }
    
            //上一页
            private function prev(){
                if($this->page == 1){
                    return '<span class="disabled">上一页</span>';
                }
                return ' <a href="'.$this->url.'&page='.($this->page-1).'">上一页</a> ';
            }
    
            //下一页
            private function next(){
                if($this->page == $this->pagenum){
                    return '<span class="disabled">下一页</span>';
                }
                return ' <a href="'.$this->url.'&page='.($this->page+1).'">下一页</a> ';
            }
    
    
            //分页信息
            public function showpage(){
                $_page .= $this->first();
                $_page .= $this->pageList();
                $_page .= $this->last();
                $_page .= $this->prev();
                $_page .= $this->next();
                return $_page;
            }
        }
    
     ?>
  • 相关阅读:
    VSCode添加git bash作为默认终端
    Git无法提交branch is currently checked out
    Excel创建下拉列表限制数据有效性
    Windows添加管理员用户
    从Windows10中彻底删除【3D对象】文件夹
    异常处理机制
    泛型
    Java集合
    String、StringBuffer、StringBulider
    System类与Runtime类
  • 原文地址:https://www.cnblogs.com/oceanden/p/4052816.html
Copyright © 2020-2023  润新知