<?php
//需求
//类名: Page
//参数
// 1数据的总数 2.每页显示的数量
// 功能
// 1.获取limit参数
// 方法名: getLimit
// 2.获取页码信息
// 方法名: show
header('content-type:text/html;charset=utf-8');
class Page{
//成员属性
public $total = 0;
public $num = 10;
//构造方法
public function __construct($total,$num){
$this->total = $total;
$this->num = $num;
}
//获取limit参数 1 0,9 2 9,9 3 18,9 n (n-1)*9, 9
public function getLimit(){
//获取当前页码
$p = isset($_GET['p']) ? $_GET['p'] : 1;
//获取开始limit值
$start = ($p-1)*$this->num;
//获取结尾
$end = $this->num;
//获取limit参数
$limit = $start.",".$end;
//返回参数
return $limit;
}
//1 2 3 4 5 6 7
public function show(){
//获取当前的页码
$p = isset($_GET['p']) ? $_GET['p'] : 1;
//获取当前请求的脚本的绝对路径
$u = $_SERVER['SCRIPT_NAME'];
//获取当前总的页码数
$totalPage = ceil($this->total/$this->num);//ceil 天花板 floor地板
//声明空的字符串
$url = "";
//首页字符串
$url .= "<a href='".$u."?p=1'>首页</a>";
//上一页
//判断越界
if($p>1){
$url .= "<a href='".$u."?p=".($p-1)."'><<</a>" ;
}else{
$url .= "<a href='".$u."?p=1'><<</a>" ;
}
//循环遍历 <a href="Page.class.php?p=1">1</a> <a href="Page.class.php?p=2">2</a>
for($i=1;$i<=$totalPage;$i++){
if($p == $i){//如果是当前页的话
$url .= '<a href="'.$u.'?p='.$i.'" class="current">'.$i.'</a> ';
}else{
$url .= '<a href="'.$u.'?p='.$i.'">'.$i.'</a> ';
}
}
//下一页
//检测越界
if($p >= $totalPage){
$url .= "<a href='".$u."?p=".$totalPage."'>>></a>" ;
}else{
$url .= "<a href='".$u."?p=".($p+1)."'>>></a>" ;
}
//末页
$url .= "<a href='".$u."?p=".$totalPage."'>末页</a>";
return $url;
}
}
//实例化对象
// $page = new Page(100, 9);//11.1111111
//调用获取limit参数的方法
// $l = $page->getLimit();
//调用方法
// $page->show();
?>
php分页类
最新推荐文章于 2021-03-10 08:22:21 发布