<?php
class Page{
protected $number;//每页显示多少条数据
protected $totalCount;//一共有多少条数据
protected $page;//当前页
protected $totalPage;//总页数
protected $url;
public function __construct($number,$totalCount){
$this->number = $number;
$this->totalCount = $totalCount;
//得到总页数
$this->totalPage = $this->getTotalPage();
//得到当前页数
$this->page = $this->getPage();
//得到url
$this->url = $this->getUrl();
}
protected function getTotalPage(){
return ceil($this->totalCount/$this->number);
}
protected function getPage(){
if(empty($_GET['page'])){
$page = 1;
}else if($_GET['page'] > $this->totalPage){
$page = $this->totalPage;
}else{
$page = $_GET['page'];
}
return $page;
}
protected function getUrl(){
$scheme = $_SERVER['REQUEST_SCHEME'];//协议
$host = $_SERVER['SERVER_NAME'];//主机名
$port = $_SERVER['SERVER_PORT'];//端口号
$uri = $_SERVER['REQUEST_URI'];//得到路径和请求字符串
//清除原来page的参数
$uriArray = parse_url($uri);
$path = $uriArray['path'];
if(!empty($uriArray['query'])){
//将请求字符串变成关联数组
parse_str($uriArray['query'],$arr);
//清除关联数组中的page键值对
unset($arr['page']);
//将剩下额参数拼接为请求字符串
$query = http_build_query($arr);
//再将请求字符串拼接到路径后面
if($query != ''){
$path = $path.'?'.$query;
}
}
return $scheme.'://'.$host.':'.$port.$path;
}
protected function setUrl($str){
if(strstr($this->url,'?')){
$url = $this->url.'&'.$str;
}else{
$url = $this->url.'?'.$str;
}
return $url;
}
public function allUrl(){
return [
'first' => $this->first(),
'prev' => $this->prev(),
'next' => $this->next(),
'end' => $this->end(),
];
}
public function first(){
return $this->setUrl('page=1');
}
public function end(){
return $this->setUrl('page='.$this->totalPage);
}
public function prev(){
if($this->page -1 < 1){
$page = 1;
}else{
$page = $this->page -1;
}
return $this->setUrl('page='.$page);
}
public function next(){
if($this->page+1 > $this->totalPage){
$page = $this->totalPage;
}else{
$page= $this->page +1;
}
return $this->setUrl('page='.$page);
}
public function limit(){
$offset= ($this->page -1)*$this->number;
return $offset.','.$this->number;
}
}
封装分页类
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 使用第三方类库FMDB封装数据请求类,实现数据分页请求,上拉刷新下拉加载#### 实现功能:添加问题和答案,删除问...
- 本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。 在之前的文章《商城项目实...
- EasyDB 基于ORMLite封装的数据库操作工具类——致力于最简洁的数据库操作API 功能点 支持自定义数据库...