/** 燕十八 公益PHP培训
课堂地址:YY频道88354001
学习社区:www.zixue.it **/
<?php
class pageLib{
private $totalNum;//总记录数
private $pageRow;//每页的记录数
private $pageNum;//一共有几页
private $pageNow;//当前页
private $sideNum=1;//当前页左右两边各显示多少个页码连接
private $parm=PAGE_PARM;//分页的参数,比如page,依据你自己的定义
private $limit;//limit语句
public function __construct($totalNum,$pageRow,$parm=''){
$this->totalNum=$totalNum;
$this->pageRow=$pageRow;
if($parm!=''){
$this->parm=$parm;
}
$this->pageNow=isset($_GET[$this->parm])?$_GET[$this->parm]:1;
$this->pageNum=ceil($totalNum/$this->pageRow);
$startpage=$this->pageNow-1;
$this->limit='limit '.$startpage*$this->pageRow.','.$this->pageRow;
}
public function __get($key){
return $this->$key;
}
private function first(){
if($this->pageNow>($this->sideNum+2)){
return "<a href='".$this->url().$this->parm."=1'> [1] ...</a>";
}
if($this->pageNow==1){
return '';
}
return "<a href='".$this->url().$this->parm."=1'> [1] </a>";
}
private function last(){
if(($this->pageNow<$this->pageNum-$this->sideNum-1)){
return "<a href='".$this->url().$this->parm."=".$this->pageNum."'> ... [".$this->pageNum."] </a>";
}
if($this->pageNow==$this->pageNum){
return '';
}
return "<a href='".$this->url().$this->parm."=".$this->pageNum."'> [".$this->pageNum."] </a>";
}
private function pagelist(){
$str='';
//当前页左边
if($this->pageNow>(1+$this->sideNum+1)){//
for($i=1;$i<=$this->sideNum;$i++){
$str.="<a href='".$this->url().$this->parm."=".($this->pageNow-$i)."'> [".($this->pageNow-$i)."] </a>";
}
}else{
for($i=$this->pageNow-1;$i>1;$i--){
$str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";
}
}
$str.="<a οnclick='return false;' href='".$this->url().$this->parm."=".$this->pageNow."'><span class='page_now'> ".$this->pageNow." </span></a>";//当前页
//当前右边
if(($this->pageNow<$this->pageNum-$this->sideNum-1)){
for($i=1;$i<=$this->sideNum;$i++){
$str.="<a href='".$this->url().$this->parm."=".($this->pageNow+$i)."'> [".($this->pageNow+$i)."] </a>";
}
}else{
for($i=$this->pageNow+1;$i<$this->pageNum;$i++){
$str.="<a href='".$this->url().$this->parm."=".$i."'> [".$i."] </a>";
}
}
return $str;
}
private function prev(){
if($this->pageNow==1){//当前是第一页
$prevnum=1;
}else{
$prevnum=$this->pageNow-1;//上一页的页码
}
$str.="<a href='".$this->url().$this->parm."=".$prevnum."'>".上一页." </a>";
return $str;
}
private function next(){
$str='';
if($this->pageNow==$this->pageNum){//当前是最后一页
$nextnum=$this->pageNow;//下一页的页码
}else{
$nextnum=$this->pageNow+1;
}
$str.="<a class='next' href='".$this->url().$this->parm."=".$nextnum."'>".下一页." </a>";
return $str;
}
//生成url
private function url(){
$p=$this->parm;//分页的参数
$url=parse_url($_SERVER['REQUEST_URI']);
if(isset($url['query'])){
parse_str($url['query'],$a);
unset($a[$p]);
if(!empty($a)){
return $url['path'].'?'.http_build_query($a).'&';
}
return $url['path'].'?';
}
return $url['path'].'?';
}
public function show(){
$str.=$this->prev();
$str.=$this->first();
$str.=$this->pagelist();
$str.=$this->last();
$str.=$this->next();
$str.= "<span style='margin-right:10px;' class='f_l f6'>总计<strong>".$this->totalNum.'</strong>个产品</span>';
return $str;
}
}
?>