Page分页类

<?php
header("Content-Type:text/html;charset=utf-8");
/* 封装分页类
 * 1.定义成员属性
* 2.构造出口方法
* 3.总页数和当前页
* 4.首页和上一页
* 5.中间的数字页
* 6.下一页和尾页 */

class Page{
    //定义成员属性
    public $total;//总记录数
    public $pagesize;//每页的记录数
    public $totalpage;//总页数
    public $curpage;//当前页
    public $url;//当前的链接地址


    //构造出口方法,给成员属性赋初值
    function __construct($total,$pagesize){
        $this->total= $total;
        $this->pagesize= $pagesize;
        $this->totalpage = $this->totalPage();
        $this->curpage = $this->curPage();
        $this->url = $this->getUrl();
    }


    //定义出口程序
     function Pages(){
        echo "共".$this->totalpage."页 当前第".$this->curpage."页 ".$this->first().$this->pageNum().$this->last();
    }


    //总页数
     function totalPage(){
        $totalpage = ceil($this->total/$this->pagesize);
        return $totalpage;
    }
    //当前页
     function curPage(){
        $curpage = isset($_GET["page"])?$_GET["page"]:1;
        if ($curpage<1){
            $curpage = 1;
        }elseif ($curpage>$this->totalpage && $this->totalpage!=0){
            $curpage = $this->totalpage;
        }
        return $curpage;
    }


    //首页和上一页
     function first(){
        $prev = $this->curpage-1;
        $link = "";
        if($prev>0){
            $link.="<a href='{$this->getUrl()}page=1'>首页 </a><a href='{$this->getUrl()}page=$prev'>上一页 </a>";
        }
        return $link;
    }


    //中间的数字页
     function pageNum(){
        $link = "";
        $bothnum = 3;//当前页对应的两边的页数
        for($i=$bothnum;$i>=1;$i--){   //当前页对应的前面的页
            $page = $this->curpage -$i;
            if($page>0){
                $link.="<a href='{$this->getUrl()}page=$page'>$page</a>&nbsp;";
            }
        }


        $link.="<font color='red'>$this->curpage</font> ";


        for($i=1;$i<=$bothnum;$i++){        //当前页对应的后面的页
            $page = $this->curpage+$i;
            if($page<=$this->totalpage){
                $link.="<a href='{$this->getUrl()}page=$page'>$page</a>&nbsp;";
            }
        }
        return $link;
    }


    //尾页和下一页
     function last(){
        $next = $this->curpage+1;
        $link = "";
        if($next<=$this->totalpage){
            $link.= "<a href='{$this->getUrl()}page=$next'>下一页</a><a href='{$this->getUrl()}page=$this->totalpage'> 尾页</a>";
        }
        return $link;
    }

    function getUrl(){
        //获取URL地址
        $url = $_SERVER["REQUEST_URI"];
        //拆分url地址
        $parse_array = parse_url($url);
        if(@ $parse_array["query"]){
            parse_str($parse_array["query"],$url_array);
            unset($url_array["page"]);
            if(empty($url_array)){
                return $parse_array["path"]."?";
            }else{
            return $parse_array["path"]."?".http_build_query($url_array)."&";
            }
        }else{
            return $url."?";
        }
    }
}


$p=new Page(52,3);
$p->Pages();


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值