类文件<?php /* * $page = new Page(); * echo $page->show(); * 参数1:总记录数 * 参数2:每页的记录数 * 参数3:左边显示的页数 * 参数4:右边显示的页数 * */ class Page{ //总的记录数 private $totalNums; //每页条数 private $pageSize; //共多少页 private $totalPages; //当前页码 private $nowPage; //首页 private $firstPage; //尾页 private $lastPage; //上一页 private $prePage; //下一页 private $nextPage; //当前页码的左侧页码 private $numLeft; //当前页码的右侧页码 private $numRight; //设置左侧几个页码 public $lMax; //设置右侧几个页码 public $rMax; //url private $url; //构造方法 public function __construct($totalNums,$pageSize,$lMax,$rMax) { $this->totalNums=$totalNums; $this->pageSize=$pageSize; $this->totalPages = $this->totalPages(); $this->nowPage=$this->getPage(); $this->firstPage=$this->firstPage(); $this->lastPage=$this->lastPage(); $this->prePage=$this->prePage(); $this->nextPage=$this->nextPage(); $this->lMax=$lMax; $this->rMax=$rMax; $this->numLeft=$this->numLeft(); $this->numRight=$this->numRight(); $this->url = $this->url(); } //共几页 private function totalPages(){ $totalPages = ceil($this->totalNums/$this->pageSize); return $totalPages; } //获取当前页码 private function getPage(){ $nowPage = isset($_GET['page'])?$_GET['page']:1; return $nowPage; } //首页 private function firstPage(){ if ($this->nowPage>1){ return "<a href='{$this->url}?page=1'>首页</a>"; }else{ return ""; } } //尾页 private function lastPage(){ if ($this->nowPage<$this->totalPages){ return "<a href='{$this->url}?page={$this->totalPages}'>尾页</a>"; }else{ return ""; } } //上一页 private function prePage(){ $prePage = $this->nowPage-1; //可以上一页,当前页大于1 if ($prePage<1){ return ""; }else{ return "<a href='{$this->url}?page=$prePage'>上一页</a>"; } } //下一页 private function nextPage(){ $nextPage = $this->nowPage+1; //可以下一页 当前页小于总页数 if ($nextPage>$this->totalPages){ return ""; }else{ return "<a href='{$this->url}?page=$nextPage'>下一页</a>"; } } //当前数字页码的左侧页码 private function numLeft(){ $str = ""; for ($i=$this->lMax;$i>=1;$i--){ $p = $this->nowPage-$i; if ($p>=1){ $str.="<a href='{$this->url}?page=$p'>$p</a>"; } } return $str; } //当前数字右侧页码 private function numRight(){ $str = ''; for($i=1;$i<=$this->rMax;$i++){ $p = $this->nowPage+$i; if($p<=$this->totalPages){ $str.=" <a href='{$this->url}?page=$p'>$p</a> "; } } return $str; } //url private function url(){ $url = $_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; return $url; } //显示页码 public function show(){ return "当前一共有{$this->totalNums} 条记录,每页显示{$this->pageSize}条记录,一共{$this->totalPages}页,当前是第{$this->nowPage}页 {$this->firstPage} {$this->prePage} {$this->numLeft} {$this->nowPage} {$this->numRight} {$this->nextPage} {$this->lastPage} "; } }引用页面
include_once 'page.php'; $page = new Page(101,10,2,2); echo $page->show();