最近项目要重写框架,没有分页类,就参开网上的资料写了一个简单的分页类,如
total = $_total ? $_total : 1;
$this->pagesize = $_pagesize;
$this->pagenum = ceil($this->total / $this->pagesize);
$this->page = $this->setPage();
$this->url = $this->get_url();
$this->bothnum = 3;
}
private function setPage() {
if (!empty($_GET['page'])) {
if ($_GET['page'] > 0) {
if ($_GET['page'] > $this->pagenum) {
return $this->pagenum;
} else {
return $_GET['page'];
}
} else {
return 1;
}
} else {
return 1;
}
}
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);
}
if(strstr($_url,'?')){
$_url = $_url."&";
}else{
$_url = $_url."?";
}
return $_url;
}
private function pageList() {
for ($i=$this->bothnum;$i>=1;$i--) {
$_page = $this->page-$i;
$_pagelist = "";
if ($_page < 1) continue;
$_pagelist .= ' - ';
}
$_pagelist .= '
- ';
for ($i=1;$i<=$this->bothnum;$i++) {
$_page = $this->page+$i;
if ($_page > $this->pagenum) break;
$_pagelist .= '
- ';
}
return $_pagelist;
}
private function first() {
if ($this->page > $this->bothnum+1) {
return '
- ...
- ';
}
}
private function prev() {
if ($this->page == 1) {
return '
- ';
}
return '
- ';
}
private function next() {
if ($this->page == $this->pagenum) {
return '
- ';
}
return '
- ';
}
private function last() {
if ($this->pagenum - $this->page > $this->bothnum) {
return '
- ...
- ';
}
}
public function showpage() {
$_page = '
-
';
$_page .= $this->first();
$_page .= $this->pageList();
$_page .= $this->last();
$_page .= $this->prev();
$_page .= $this->next();
$_page .= '
';
return $_page;
}
}
//调用
$page = new page(100,10);
echo $page->showpage();
?>
运行效果图