Page分页类

来源:互联网 发布:linux php.ini 编辑:程序博客网 时间:2024/05/18 20:09
<?phpheader("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
原创粉丝点击