<?php
class Page
{
private $total; //总记录
private $pagesize; //每页显示多少条
private $page; //当前页码
private $pagenum; //总页码
private $url; //地址
private $bothnum; //两边保持数字分页的量
//构造方法初始化
public function __construct($_total, $_pagesize)
{
$this->total = $_total ? $_total : 1;
$this->pagesize = $_pagesize;
$this->pagenum = ceil($this->total / $this->pagesize);
$this->page = $this->setPage();
$this->url = $this->setUrl();
$this->bothnum = 2;
}
//拦截器
public function __get($_key)
{
return $this->$_key;
}
//获取当前页码
private function setPage()
{
$pagenow = !empty($_GET['page']) && $_GET['page'] > 0 ? $_GET['page'] : 1;
if ($pagenow > $this->pagenum)
return $this->pagenum;
else
return $pagenow;
}
//获取地址
private function setUrl()
{
$_url = $_SERVER["REQUEST_URI"];
$_par = parse_url($_url);
if (isset($_par['query'])) {
parse_str($_par['query'], $_query);
unset($_query['page']);
$_url = $_par['path'] . '?' . http_build_query($_query);
} else {
$_url .= '?';
}
return $_url;
}
//数字目录
private function pageList()
{
$_pagelist = '';
for ($i = $this->bothnum; $i >= 1; $i--) {
$_page = $this->page - $i;
if ($_page < 1) continue;
$_pagelist .= ' <a href="' . $this->url . '&page=' . $_page . '" class="btn btn-default btn-sm">' . $_page . '</a> ';
}
$_pagelist .= ' <a class="btn btn-default btn-sm" href="javascript:void(0)" >' . $this->page . '</a> ';
for ($i = 1; $i <= $this->bothnum; $i++) {
$_page = $this->page + $i;
if ($_page > $this->pagenum) break;
$_pagelist .= ' <a href="' . $this->url . '&page=' . $_page . '" class="btn btn-default btn-sm">' . $_page . '</a> ';
}
return $_pagelist;
}
//首页
private function first()
{
if ($this->page > $this->bothnum + 1) {
return ' <a href="' . $this->url . '" class="btn btn-default btn-sm">1</a> ...';
}
}
//上一页
private function prev()
{
if ($this->page == 1) {
return '<a href="javascript:void(0)" class="btn btn-default btn-sm"><i class="fa fa-chevron-left"></i></a>';
}
return ' <a href="' . $this->url . '&page=' . ($this->page - 1) . '" class="btn btn-default btn-sm"><i class="fa fa-chevron-left"></i></a> ';
}
//下一页
private function next()
{
if ($this->page == $this->pagenum) {
return '<a href="javascript:void(0)" class="btn btn-default btn-sm"><i class="fa fa-chevron-right"></i></a>';
}
return '<a href="' . $this->url . '&page=' . ($this->page + 1) . '" class="btn btn-default btn-sm"><i class="fa fa-chevron-right"></i></a> ';
}
//尾页
private function last()
{
if ($this->pagenum - $this->page > $this->bothnum) {
return ' ...<a href="' . $this->url . '&page=' . $this->pagenum . '">' . $this->pagenum . '</a> ';
}
}
//分页信息
public function showpage()
{
$_page = '';
$_page .= $this->first();
$_page .= $this->pageList();
$_page .= $this->last();
$_page .= $this->prev();
$_page .= $this->next();
return $_page;
}
}
total = 100;
$pagesize = 10;
$page = new Page($total, $pagesize);
$pageshow = $page->showpage();
echo $pageshow;
PHP小程序--分页
最新推荐文章于 2021-03-23 18:40:23 发布