<?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> ";
}
}
$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> ";
}
}
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();
Page分页类
最新推荐文章于 2023-07-30 13:32:42 发布