分享一个php的分页类
/*
*@ max最大页数
*@ url链接url
*@ step页码间隔,最小3,最大9
*@ config: pre上一页,next下一页,pages页码,select跳转
*/
class Page{
private $pageUrl;
private $query;
private $max;
private $step;
private $config=array('pre','next','pages');
public function __construct($url = "", $max = 100,$step = 3){
$urlArr=parse_url($url);
$pageUrl='';
$query=array();
isset($urlArr['scheme']) && $pageUrl.=$urlArr['scheme'].'://';
isset($urlArr['host']) && $pageUrl.=$urlArr['host'];
isset($urlArr['path']) && $pageUrl.=$urlArr['path'];
isset($urlArr["query"]) && parse_str($urlArr["query"],$query);
$this->pageUrl=$pageUrl;
$this->query=$query;
$this->max=$max;
$this->step=$step;
}
public function setConfig($cfg=array()){
$this->config=$cfg;
return $this;
}
public function html($nowPage=1){
$html='';
if(in_array('pre',$this->config)){
$this->query['page']=$nowPage-1;
$querystr=http_build_query($this->query);
$html.=$nowPage == 1 ? '<a href="javascript:;" class="pre disabled">上一页</a>' : '<a href="'.$this->pageUrl.'?'.$querystr.'" class="pre">上一页</a>';
}
$preDiff=$this->step - ($this->max - $nowPage);
$preDiff=$preDiff > 0 ? $preDiff : 0;
$nextDiff=$this->step - ($nowPage - 1);
$nextDiff=$nextDiff > 0 ? $nextDiff : 0;
for($i=($this->step + $preDiff);$i>0;$i--){
$page=$nowPage - $i;
$this->query['page']=$page;
$querystr=http_build_query($this->query);
if($page > 0){
$html.='<a href="'.$this->pageUrl.'?'.$querystr.'" class="item">'.$page.'</a>';
}
}
$html.='<a href="javascript:;" class="item active">'.$nowPage.'</a>';
for($i=1;$i<=($this->step + $nextDiff);$i++){
$page=$nowPage + $i;
$this->query['page']=$page;
$querystr=http_build_query($this->query);
$page <= $this->max && $html.='<a href="'.$this->pageUrl.'?'.$querystr.'" class="item">'.$page.'</a>';
}
if(in_array('next',$this->config)){
$this->query['page']=$nowPage+1;
$querystr=http_build_query($this->query);
$html.=$nowPage >= $this->max ?'<a href="javascript:;" class="next disabled">下一页</a>' : '<a href="'.$this->pageUrl.'?'.$querystr.'" class="next">下一页</a>';
}
return $html;
}
}
咳咳,刚开始规划的功能,由于懒了点,写的时候没有写完,朋友可以补补哈,目前功能是够用。。。。
pages页码配置无效,直接默认就有了,,
select跳转预留了,还没写。。。。