php分页类整理-php实用功能记录(一)

阅读528评论0

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=":;" 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=":;" 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=":;" class="next disabled">下一页</a>' : '<a href="'.$this->pageUrl.'?'.$querystr.'" class="next">下一页</a>';
}
return $html;
}
}

咳咳,刚开始规划的功能,由于懒了点,写的时候没有写完,朋友可以补补哈,目前功能是够用。。。。
pages页码配置无效,直接默认就有了,,
select跳转预留了,还没写。。。。


0 位网友评论:

欢迎来评论

请填写验证码