PHP----分页类

类文件
<?php
/*
 * $page = new Page();
 * echo $page->show();
 * 参数1:总记录数
 * 参数2:每页的记录数
 * 参数3:左边显示的页数
 * 参数4:右边显示的页数
 * */
class Page{
    //总的记录数
    private $totalNums;
    //每页条数
    private $pageSize;
    //共多少页
    private $totalPages;
    //当前页码
    private $nowPage;
    //首页
    private $firstPage;
    //尾页
    private $lastPage;
    //上一页
    private $prePage;
    //下一页
    private $nextPage;
    //当前页码的左侧页码
    private $numLeft;
    //当前页码的右侧页码
    private $numRight;
    //设置左侧几个页码
    public $lMax;
    //设置右侧几个页码
    public $rMax;
    //url
    private $url;
    //构造方法
    public function __construct($totalNums,$pageSize,$lMax,$rMax)
    {
        $this->totalNums=$totalNums;
        $this->pageSize=$pageSize;
        $this->totalPages = $this->totalPages();
        $this->nowPage=$this->getPage();
        $this->firstPage=$this->firstPage();
        $this->lastPage=$this->lastPage();
        $this->prePage=$this->prePage();
        $this->nextPage=$this->nextPage();
        $this->lMax=$lMax;
        $this->rMax=$rMax;
        $this->numLeft=$this->numLeft();
        $this->numRight=$this->numRight();
        $this->url = $this->url();
    }
    //共几页
    private function totalPages(){
        $totalPages = ceil($this->totalNums/$this->pageSize);
        return $totalPages;
    }
    //获取当前页码
    private function getPage(){
        $nowPage = isset($_GET['page'])?$_GET['page']:1;
        return $nowPage;
    }
    //首页
    private function firstPage(){
        if ($this->nowPage>1){
            return "<a href='{$this->url}?page=1'>首页</a>";
        }else{
            return "";
        }
    }
    //尾页
    private function lastPage(){
        if ($this->nowPage<$this->totalPages){
            return "<a href='{$this->url}?page={$this->totalPages}'>尾页</a>";
        }else{
            return "";
        }

    }
    //上一页
    private function prePage(){
        $prePage = $this->nowPage-1;
        //可以上一页,当前页大于1
        if ($prePage<1){
            return "";
        }else{
            return "<a href='{$this->url}?page=$prePage'>上一页</a>";
        }
    }
    //下一页
    private function nextPage(){
       $nextPage = $this->nowPage+1;
       //可以下一页 当前页小于总页数
        if ($nextPage>$this->totalPages){
            return "";
        }else{
            return "<a href='{$this->url}?page=$nextPage'>下一页</a>";
        }
    }
    //当前数字页码的左侧页码
    private function numLeft(){
        $str = "";
        for ($i=$this->lMax;$i>=1;$i--){
            $p = $this->nowPage-$i;
            if ($p>=1){
                $str.="<a href='{$this->url}?page=$p'>$p</a>";
            }
        }
        return $str;
    }
    //当前数字右侧页码
    private function numRight(){
        $str = '';
        for($i=1;$i<=$this->rMax;$i++){
            $p = $this->nowPage+$i;
            if($p<=$this->totalPages){
                $str.=" <a href='{$this->url}?page=$p'>$p</a> ";
            }
        }
        return $str;
    }
    //url
    private function url(){
        $url = $_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
        return $url;
    }
    //显示页码
    public  function show(){
        return "当前一共有{$this->totalNums} 条记录,每页显示{$this->pageSize}条记录,一共{$this->totalPages},当前是第{$this->nowPage}{$this->firstPage} {$this->prePage} {$this->numLeft} {$this->nowPage} {$this->numRight} {$this->nextPage} {$this->lastPage}  ";
    }
}

引用页面
include_once 'page.php';
$page = new Page(101,10,2,2);
echo $page->show();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值