本文章介紹這個php分頁類支持下一頁,下頁,首頁等所有分頁要有的盡有哦,有需要的同學可以參考一下下哈。 代碼如下 復制代碼
<?php
/************************************************************************************
* 完美分頁類,可以自定義分頁(比高胖老師的完美哈,O(∩_∩)O哈哈~) *
************************************************************************************
* 版權所有 (C) 2011-2012 北海情書-一個程序員博客,並保留所有權利。 *
*
* **********************************************************************************
* $Author: 北海情書 ([email protected]) $ *
* $Date: 2011-07-18 10:00:00 $ *
* **********************************************************************************/
class Page{
private $total; //數據總條數
private $listRows; //每頁顯示條數
private $limit; //限制條數
private $pageNum; //總頁數
private $page; //當前頁
private $config=array('head'=>"條記錄", "prev"=>"上一頁", "next"=>"下一頁", "first"=>"首頁", "last"=>"末頁");
/**
* 構造方法,可以設置分頁類的屬性
* @param int $total 計算分頁的總記錄數
* @param int $listRows 可選的,默認每頁需要顯示的記錄數
*
*/
public function __construct($total,$listRows=10){
$this->total=$total;
$this->listRows=$listRows;
$this->pageNum=ceil($this->total/$this->listRows); //獲取總頁數
if($_GET['page']>$this->pageNum){ //防止過界
$_GET['page']=$this->pageNum;
}
$this->page=!empty($_GET['page'])?$_GET['page']:"1"; //當前頁
$this->limit=$this->setPage(); //分頁公式
}
public function __get($args){
if($args=='limit'){ //過濾非法請求
return $this->limit;
}
return null;
}
//計算分頁公式
private function setPage(){
return "limit ".($this->page-1)*$this->listRows.",".$this->listRows;
}
//上一頁
private function prev(){
return "<a href='?page=".($this->page-1)."'>".$this->config['prev']."</a>";
}
//下一頁
private function next(){
return "<a href='?page=".($this->page+1)."'>".$this->config['next']."</a>";
}
//首頁
private function first(){
return "<a href='?page=1'>".$this->config['first']."</a>";
}
//尾頁
private function last(){
return "<a href='?page=".($this->pageNum)."'>".$this->config['last']."</a>";
}
//分頁列表
private function pagelist(){
$lists.='';
for($i=1;$i<$this->pageNum;$i++){
$lists.="<a href='?page=".$i."'>$i</a> ";
}
return $lists;
}
public function fpage($display=array(1,2,3,4,5)){
$html[1]= "共有".$this->total.$this->config['head'];
$html[2]= $this->prev(); //上一頁
$html[3]= $this->next(); //下一頁
$html[4]= $this->first(); //首頁
$html[5]= $this->last(); //尾頁
$html[6]= $this->pagelist(); //列表
$fpage='';
foreach($display as $index){
$fpage.=$html[$index];
}
return $fpage;
}
}