PHP小程序--分页

<?php

class Page
{
    private $total;     //总记录
    private $pagesize;  //每页显示多少条
    private $page;      //当前页码
    private $pagenum;       //总页码
    private $url;       //地址
    private $bothnum;       //两边保持数字分页的量

    //构造方法初始化
    public function __construct($_total, $_pagesize)
    {
        $this->total = $_total ? $_total : 1;
        $this->pagesize = $_pagesize;
        $this->pagenum = ceil($this->total / $this->pagesize);
        $this->page = $this->setPage();
        $this->url = $this->setUrl();
        $this->bothnum = 2;
    }

    //拦截器
    public function __get($_key)
    {
        return $this->$_key;
    }

    //获取当前页码
    private function setPage()
    {
        $pagenow = !empty($_GET['page']) && $_GET['page'] > 0 ? $_GET['page'] : 1;
        if ($pagenow > $this->pagenum)
            return $this->pagenum;
        else
            return $pagenow;
    }

    //获取地址
    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);
        } else {
            $_url .= '?';
        }
        return $_url;
    }

    //数字目录
    private function pageList()
    {
        $_pagelist = '';
        for ($i = $this->bothnum; $i >= 1; $i--) {
            $_page = $this->page - $i;
            if ($_page < 1) continue;
            $_pagelist .= ' <a href="' . $this->url . '&page=' . $_page . '" class="btn btn-default btn-sm">' . $_page . '</a> ';
        }
        $_pagelist .= ' <a class="btn btn-default btn-sm" href="javascript:void(0)" >' . $this->page . '</a> ';
        for ($i = 1; $i <= $this->bothnum; $i++) {
            $_page = $this->page + $i;
            if ($_page > $this->pagenum) break;
            $_pagelist .= ' <a href="' . $this->url . '&page=' . $_page . '" class="btn btn-default btn-sm">' . $_page . '</a> ';
        }
        return $_pagelist;
    }

    //首页
    private function first()
    {
        if ($this->page > $this->bothnum + 1) {
            return ' <a href="' . $this->url . '" class="btn btn-default btn-sm">1</a> ...';
        }
    }

    //上一页
    private function prev()
    {
        if ($this->page == 1) {
            return '<a href="javascript:void(0)" class="btn btn-default btn-sm"><i class="fa fa-chevron-left"></i></a>';
        }
        return ' <a href="' . $this->url . '&page=' . ($this->page - 1) . '" class="btn btn-default btn-sm"><i class="fa fa-chevron-left"></i></a> ';
    }

    //下一页
    private function next()
    {
        if ($this->page == $this->pagenum) {
            return '<a href="javascript:void(0)" class="btn btn-default btn-sm"><i class="fa fa-chevron-right"></i></a>';
        }
        return '<a href="' . $this->url . '&page=' . ($this->page + 1) . '" class="btn btn-default btn-sm"><i class="fa fa-chevron-right"></i></a> ';
    }

    //尾页
    private function last()
    {
        if ($this->pagenum - $this->page > $this->bothnum) {
            return ' ...<a href="' . $this->url . '&page=' . $this->pagenum . '">' . $this->pagenum . '</a> ';
        }
    }

    //分页信息
    public function showpage()
    {
        $_page = '';
        $_page .= $this->first();
        $_page .= $this->pageList();
        $_page .= $this->last();
        $_page .= $this->prev();
        $_page .= $this->next();
        return $_page;
    }

}

total = 100;
$pagesize = 10;
$page = new Page($total, $pagesize);
$pageshow = $page->showpage();
echo $pageshow;

GitHub:https://github.com/HowieBird/Page

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值