PHP 分页类 高洛峰 细说PHP
分页类
<?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> <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.=' <ahref="'.$this->url.'&page='.$page.'">'.$page.'</a> ';}}//当前页的设置if($this->pages>1){$list.=' '.$this->cpage.' ';}//当前页之后的设置for($i=1;$i<=$num;$i++){$page=$this->cpage+$i;if($page<=$this->pages){$list.=' <ahref="'.$this->url.'&page='.$page.'">'.$page.'</a> ';}else{break;}}return$list;}//末页privatefunctionlast(){if($this->cpage<$this->pages){$next=$this->cpage+1;return'<ahref="'.$this->url.'&page='.$next.'">下一页</a> <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]=" 共{$this->total}条记录 ";$pages[1]=" 本页显示".$this->currnum()."条记录 ";$pages[2]=" 从".$this->start()."-".$this->end()."条 ";$pages[3]=" {$this->cpage}/{$this->pages} ";$pages[4]=" ".$this->first()." ";$pages[5]=" ".$this->flist()." ";$pages[6]=" ".$this->last()." ";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);
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。