该分页类是一个简单的分页类 可能会有不对的地方。
<?php
//==============分页类的实现===============
/*
*@param
*$pageSize 每页大小
*$sumRecord 总记录条数
*$sumPage 总页数
*$currentPage 当前页数
*$url 页面的url地址
*/
class Page{
private $pageSize;
private $sumRecord;
private $sumPage;
private $currentPage;
private $url;
public function __construct($sumRecord, $pageSize, $currentPage)
{
$this->pageSize = $pageSize;
$this->sumRecord = $sumRecord;
$this->currentPage = $currentPage;
$this->sumPage = ceil($this->sumRecord/$this->pageSize);
$this->getUrl();
}
private function first() //首页
{
if($this->currentPage !=1 ){
return "<a href='".$this->url."1'>首页</a>\n";
} else {
return "首页\n";
}
}
private function prevPage()//上一页
{
if($this->currentPage > 1){
return "<a href='".$this->url.($this->currentPage-1)."'>上一页</a>\n";
} else {
return "上一页\n";
}
}
private function postPage()//下一页
{
if($this->currentPage < $this->sumPage){
return "<a href='".$this->url.($this->currentPage+1)."'>下一页</a>\n";
} else {
return "下一页\n";
}
}
private function last() //尾页
{
if($this->currentPage != $this->sumPage){
return "<a href='".$this->url.$this->sumPage."'>尾页</a>\n";
} else {
return "尾页\n";
}
}
private function getUrl()
{
$url = $_SERVER['REQUEST_URI'];
$param = parse_url($url);
if(isset($param['query'])) {
parse_str($param['query'],$query);
unset($query['page']);
if(count($query)) {
$this->url = $param['path']."?".http_build_query($query)."&page=";
} else {
$this->url = $param['path']."?page=";
}
} else {
$this->url = $param['path']."?page=";
}
}
public function showPaging()
{
$str = "第{$this->currentPage}/{$this->sumPage}页 共{$this->sumRecord}条记录\n";
$str .= $this->first();
$str .= $this->prevPage();
$str .= $this->postPage();
$str .= $this->last();
echo $str;
}
}
// 测试例子
$page = isset($_GET['page'])? $_GET['page']: 1;
$pager = new Page(101, 20, $page);
$pager->showPaging();
echo "<br/>";
?>