PHP生成页码类

<style>
    .page>a{
        position: relative;
        float: left;
        padding: 6px 12px;
        margin-left: -1px;
        line-height: 1.42857143;
        color: #337ab7;
        text-decoration: none;
        background-color: #fff;
        border: 1px solid #ddd;
    }
    .page .active{
        color: #FFF;
        background-color: #337ab7 ;
        border-color: #777 ;
    }
</style>
<?php

class Page{//创建Page类并继承Mysql类
    private $pagesize;//每页显示的记录数
    private $page;//当前是第几页
    private $pages;//总页数
    private $total;//查询的总记录数
    private $pagelen;//显示的页码数
    private $pageoffset;//页码的偏移量
    function __construct($pagesize,$pagelen,$total){
        $this->page = !empty($_GET['page']) ? $_GET['page'] : 1;
        $this->pagesize=$pagesize;
        $this->pagelen=$pagelen;
        $this->total=$total;
        $this->pages=ceil($this->total/$this->pagesize);//计算总页数
        $this->pageoffset=floor(($this->pagelen-1)/2);//计算页码偏移量
    }

    function myPage(){
        $message = '<div class="page">';//用来存放分页信息;
//        $message .="第".$this->page."页/共".$this->pages."页&nbsp;&nbsp;&nbsp;";//输出当前第几页,共几页
        if($this->page==1){//如果当前页是1
            $message.="<a>首页</a>&nbsp;";//输出有链接的文字
            $message.="<a>上一页</a>&nbsp;&nbsp;";//输出有链接的文字
        }else{
            $message.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a>&nbsp;";//输出有链接的文字
            $message.="<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'>上一页</a>&nbsp;&nbsp;";//输出有链接的文字
        }
        if($this->page<=$this->pageoffset){//如果当前页小于页码的偏移量
            $minpage=1;//显示的最小页数为1
            $maxpage=$this->pagelen;//显示的最大页数为页码的值
        }elseif($this->page>$this->pages-$this->pageoffset){//如果当前页大于总页数减去页码的偏移量
            $minpage=$this->pages-$this->pagelen+1;//显示的最小页数为总页数减去页码数再加上1
            $maxpage=$this->pages;//显示的最大页数为总页数
        }else{
            $minpage=$this->page-$this->pageoffset;//显示的最小页数为当前页数减去页码的偏移量
            $maxpage=$this->page+$this->pageoffset;//显示的最大页数为当前页数加上页码的偏移量
        }
        for($i=$minpage;$i<=$maxpage;$i++){//循环输出数字页码数
            if($i==$this->page){
                $message.="<a class='active'>$i</a>"."\n";//输出没有链接的数字
            }else{
                $message.="<a id='num' href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>\n";//输出有链接的数字
            }
        }
        if($this->page==$this->pages){//如果当前页等于最大页数
            $message.="<a>下一页</a>&nbsp;";//显示有链接的文字
            $message.="<a>尾页</a>";//显示有链接的文字
        }else{
            $message.="&nbsp;&nbsp;<a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>下一页</a>&nbsp;";//显示有链接的文字
            $message.="<a href='".$_SERVER['PHP_SELF']."?page=".$this->pages."'>尾页</a>";//显示有链接的文字
        }
        $message .= "</div>";
        return $message;//返回变量的值
    }
}
echo (new Page(10,10,500))->myPage();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值