* page.class.php php 设计完美分页类
* Enter description here ...
* @author Administrator
**/
classPage {private $total; //数据表中总记录娄
private $listRows; //每页显示 行数
private $limit ="LIMIT 0,5";private $uri;private $pageNum; //页数
private $config=array('header'=>"条记录",'prev'=>"上一页",'next'=>"下一页",'first'=>"首页",'last'=>"尾页");private $listNum=5;public Function __construct($total,$listRows=5,$parameter=''){$this->total=$total;$this->listRows=$listRows;$this->uri=$this->getUri($parameter);$this->page=!empty($_GET['page'])?$_GET['page']:1;$this->pageNum=ceil($this->total/$this->listRows);$this->limit= $this->setLimit();
}private functionsetLimit(){return "LIMIT ".($this->page-1)*$this->listRows.",".$this->listRows;
}//获取uri 参数
private Function getUri($parameter){$url=$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':'?').$parameter;$parse= parse_url($url);if(isset($parse['query'])){parse_str($parse['query'],$params);unset($params['page']);$url=$parse['path'].'?'.http_build_query($params);
}return $url;
}private Function __get($args) {if($args=="limit"){return $this->limit;
}else{return null;
}
}private functionstart(){if($this->total==0){return 0;
}else{return ($this->page-1)*$this->listRows+1;
}
}private function end(){return min($this->page*$this->listRows,$this->total);
}private functionfirst(){if($this->page==1){$html .=" {$this->config['first']} ";
}else{$html .=" {$this->config['first']} ";
}return $html;
}private function prev(){if($this->page==1){$html .=" {$this->config['prev']} ";
}else{$html .=" {$this->config['prev']} ";
}return $html;
}private functionpageList(){$linkPage="";$inum=floor($this->listNum/2);for($i=$inum; $i>=1; $i--){$page=$this->page-$i;if($page<1){continue;
}$linkPage .="{$page} ";
}$linkPage .="{$this->page} ";for($i=1; $i<=$inum; $i++){$page=$this->page+$i;if($page<=$this->pageNum){$linkPage .="{$page} ";
}else{break;
}
}return $linkPage;
}private function next(){if($this->page==$this->pageNum){$html .=" {$this->config['next']} ";
}else{$html .=" {$this-> config['next']} ";
}return $html;
}private functionlast(){if($this->page==$this->pageNum){$html .=" {$this->config['last']} ";
}else{$html .=" {$this-> config['last']} ";
}return $html;
}private functiongopage(){return ' ';
}function fpage($display=array(0,1,2,3,4,5,6,7,8)){$html[0]="共有{$this->total}{$this->config['header']} ";$html[1]="{$this->page}/{$this->pageNum}页 ";$html[2]="本页显示".($this->end()-$this->start()+1)."条,本页{$this->start()}-{$this->end()}条 ";$html[3]=$this->first();$html[4]=$this->prev();$html[5]=$this->pageList();$html[6]=$this->next();$html[7]=$this->last();$html[8]=$this->goPage();foreach ($display as $index){$pp .=$html[$index];
}return $pp;
}
}?>