分页类

<?php//分页类classPage{private$total;//总记录数private$nums;//每页显示的条数private$pages;//总页数private$cpage;//当前页private$url;//当前urlpublicfunction__construct($total,$nums){$this->total=$total;$this->nums=$nums;$this->pages=$this->getPages();$this->url=$this->setUrl();//获取当前页$this->cpage=!empty($_GET['page'])?intval($_GET['page']):1;$this->cpage=$this->cpage>0?$this->cpage:1;$this->cpage=$this->cpage>$this->pages?$this->pages:$this->cpage;}privatefunctionsetUrl(){$url=$_SERVER['REQUEST_URI'];if(strstr($url,"?")){$arr=parse_url($url);if(isset($arr['query'])){parse_str($arr['query'],$output);}//删除url中重复的page=n的字符串unset($output['page']);$url=$arr['path']."?".http_build_query($output);}else{$url.="?";}return$url;}//获取页数privatefunctiongetPages(){returnceil($this->total/$this->nums);//向上取整法}//首页privatefunctionfirst(){//如果当前页是第一页则不显示这些if($this->cpage>1){$pre=$this->cpage-1;return'<ahref="'.$this->url.'&page=1">首页</a>&nbsp;&nbsp;<ahref="'.$this->url.'&page='.$pre.'">上一页</a>';}else{return'';}}//列表privatefunctionflist(){$list="";$num=4;//当前页之前的设置for($i=$num;$i>=1;$i--){$page=$this->cpage-$i;if($page>1){$list.='&nbsp;<ahref="'.$this->url.'&page='.$page.'">'.$page.'</a>&nbsp;';}}//当前页的设置if($this->pages>1){$list.='&nbsp;'.$this->cpage.'&nbsp;';}//当前页之后的设置for($i=1;$i<=$num;$i++){$page=$this->cpage+$i;if($page<=$this->pages){$list.='&nbsp;<ahref="'.$this->url.'&page='.$page.'">'.$page.'</a>&nbsp;';}else{break;}}return$list;}//末页privatefunctionlast(){if($this->cpage<$this->pages){$next=$this->cpage+1;return'<ahref="'.$this->url.'&page='.$next.'">下一页</a>&nbsp;&nbsp;<ahref="'.$this->url.'&page='.$this->pages.'">末页</a>';}else{return'';}}//开始从多少条记录开始privatefunctionstart(){return($this->cpage-1)*$this->nums+1;}//结束到多少条记录结束privatefunctionend(){returnmin($this->cpage*$this->nums,$this->total);}//当前显示的条数privatefunctioncurrnum(){return$this->end()-$this->start()+1;}//分页方法publicfunctionfpage(){$arr=func_get_args();$fpage="";$pages[0]="&nbsp;共{$this->total}条记录&nbsp;";$pages[1]="&nbsp;本页显示".$this->currnum()."条记录&nbsp;";$pages[2]="&nbsp;从".$this->start()."-".$this->end()."条&nbsp;";$pages[3]="&nbsp;{$this->cpage}/{$this->pages}&nbsp;";$pages[4]="&nbsp;".$this->first()."&nbsp;";$pages[5]="&nbsp;".$this->flist()."&nbsp;";$pages[6]="&nbsp;".$this->last()."&nbsp;";if(count($arr)<1)$arr=array(0,1,2,3,4,5,6);foreach($arras$n){$fpage.=$pages[$n];}return$fpage;}}

调用分页类

include'print.php';$page=newPage(1000,10);echo$page->fpage(6,4,5);