<?php
class Pager{
//生成的页码(事实上不用也行)
var $PageNumber='';
//需要分类的条目总数
var $TotalItems=0;
//每页显示几个条目
var $ItemsPerPage=3;
//总页数
var $TotalPageNumber=0;
//当前页码!
var $CurrentPageNumber=1;
//一个页面显示几个页码
var $Length=10;
//需要分页的url
var $Url='';
function Pager($totalItems='',$currentPageNumber='',$itemsPerPage='',$length='',$url=''){
$this->currentPageNumber=$currentPageNumber;
$this->totalItems=$totalItems;
$this->itemsPerPage=$itemsPerPage;
$this->length=$length;
$this->url=$url;
$this->url.=(stristr($this->url,'?')!=false)?'&':'?'; //Url里有"?"就加"&"没有就加"?"
$this->getTotalPageNumber();
}
function getTotalPageNumber(){
$this->totalPageNumber=ceil($this->totalItems/$this->itemsPerPage);
return $this->totalPageNumber;
}
//SQL里 LIMIT start,length 中的起始值
function getLimitStart(){
$start=($this->currentPageNumber-1)*$this->itemsPerPage;
return $start;
}
//SQL里 LIMIT start,length 中的length
function getLimitItems(){
return $this->itemsPerPage;
}
//主函数.中文分页
function getPageNumber(){
if ($this->getTotalPageNumber()>1){
$pageNumber='当前第'.$this->currentPageNumber.'页/共'.$this->totalPageNumber.'页';
//显示第一页和前一页
if ($this->currentPageNumber>1){
//第一页
//First Page
$pageNumber.="<B><A HREF=".$this->url."page=1>第一页</A> </B> ";
//前一页
//Previous Page
$pageNumber.="<B><A HREF=".$this->url."page=".($this->currentPageNumber-1).">前一页 </A> </B>";
}
//The start number is the first number of all pages which show on the current page.
$startNumber=intval($this->currentPageNumber/$this->length)*$this->length;
//Prev N page
//交界处
if ($this->currentPageNumber>=$this->length){
$pageNumber.="[<B><A HREF=".$this->url."page=".($startNumber-1).">".($startNumber-1)."</A></B>]...";
}
$leftPageNumber=0;
for ($i=$startNumber;$i<=$this->totalPageNumber;$i++){
if ($i==0)continue;
if ($i-$startNumber<$this->length){
if ($i==$this->currentPageNumber){
$pageNumber.="[<b>$i</b>]";
}else{
$pageNumber.="[<A HREF=".$this->url."page=".$i.">".$i."</A>]";
}
}else{
$leftPageNumber=$this->totalPageNumber-$i+1;
break;
}
}
//显示下一个分页列表
if ($leftPageNumber>=1){
$pageNumber.="...[<B><A HREF=".$this->url."page=".($startNumber+$this->length).">".($startNumber+$this->length)."</A></B>] ";
}
if ($this->currentPageNumber!=$this->totalPageNumber){
//Next page
$pageNumber.="<B><A HREF=".$this->url."page=".($this->currentPageNumber+1).">下一页 </A> </B>";
//Last page
$pageNumber.="<B><A HREF=".$this->url."page=".$this->totalPageNumber.">最后页</A> </B>";
}
$this->pageNumber=$pageNumber;
return $this->pageNumber;
}
}
}
?>
改别人的..后来又改成静态分页 - -|
原作类里的SQL去掉了.