个记录, prev=>上一页, next=>下一页, first=>首 页, last=>尾 页); private $listnum=8; /* * $total * $listrows */ public function __construct($total, $listrows=10, $pa=){ $this->total=$total; $this->listrows=$listrows; $this->uri=$this->geturi($pa); $this->page=!empty($_get[page]) ? $_get[page] : 1; $this->pagenum=ceil($this->total/$this->listrows); $this->limit=$this->setlimit(); } private function setlimit(){ return limit .($this->page-1)*$this->listrows., {$this->listrows}; } private function geturi($pa){ $url=$_server[request_uri].(strpos($_server[request_uri], '?')?'':?).$pa; echo $url; $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 function start(){ 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 function first(){ if($this->page==1) $html.=''; else $html.= uri%7d&page=1>{$this->config[first]} ; return $html; } private function prev(){ if($this->page==1) $html.=''; else $html.= uri%7d&page='.(%24this->page-1).'>{$this->config[prev]} ; return $html; } private function pagelist(){ $linkpage=; $inum=floor($this->listnum/2); for($i=$inum; $i>=1; $i--){ $page=$this->page-$i; if($page continue; $linkpage.= uri%7d&page=%7b%24page%7d>{$page} ; } $linkpage.= {$this->page} ; for($i=1; $i $page=$this->page+$i; if($pagepagenum) $linkpage.= uri%7d&page=%7b%24page%7d>{$page} ; else break; } return $linkpage; } private function next(){ if($this->page==$this->pagenum) $html.=''; else $html.= uri%7d&page='.(%24this->page+1).'>{$this->config[next]} ; return $html; } private function last(){ if($this->page==$this->pagenum) $html.=''; else $html.= uri%7d&page='.(%24this->pagenum).'>{$this->config[last]} ; return $html; } private function gopage(){ return ' page.'> '; } function fpage($display=array(0,1,2,3,4,5,6,7,8)){ $html[0]= 共有{$this->total}{$this->config[header]} ; $html[1]= 每页显示.($this->end()-$this->start()+1).条,本页{$this->start()}-{$this->end()}条 ; $html[2]= {$this->page}/{$this->pagenum}页 ; $html[3]=$this->first(); $html[4]=$this->prev(); $html[5]=$this->pagelist(); $html[6]=$this->next(); $html[7]=$this->last(); $html[8]=$this->gopage(); $fpage=''; foreach($display as $index){ $fpage.=$html[$index]; } return $fpage; } }
复制代码
分页, php