PHP分页之自动适应范围的页码分页程序

网上有很多这篇文章内容,我只是拿过来修改了一下几个参数,以便容易读懂

可以自动适应范围的页码分页程序,页码格式如下
<< < 1 2 3 4 5 6 7 > >>
<< < 6 7 8 9 10 11 12 > >>

 

$pages) $pageid = $pages;
	$offset = $perpage*($pageid-1); # 计算查询偏移量
	//页码范围计算
	$init       = 1;      # 起始页码数
	$max        = $pages; # 结束页码数
	$pagelen    = ($pagelen%2) ? $pagelen : $pagelen+1; # 页码个数
	$pageoffset = ($pagelen-1)/2; # 页码个数左右偏移量
	
	//生成html
	$pagecode  ='
'; $pagecode .="$pageid/$pages"; # 第几页,共几页 if($pageid!=1){ # 如果是第一页,则不显示第一页和上一页的连接 $pagecode.="<<"; # 第一页 $pagecode.="<";# 上一页 } if($pages>$pagelen) { # 分页数大于页码个数时可以偏移 if($pageid<=$pageoffset) {//如果当前页小于等于左偏移 $init = 1; $max = $pagelen; } else { # 如果当前页大于左偏移 if($pageid + $pageoffset>=$pages+1) { # 如果当前页码右偏移超出最大分页数 $init = $pages-$pagelen+1; } else { # 左右偏移都存在时的计算 $init = $pageid-$pageoffset; $max = $pageid+$pageoffset; } } } //生成html for( $i=$init; $i<=$max; $i++ ) { if( $i==$pageid ) { $pagecode .= ''.$i.''; } else { $pagecode .= "$i"; } } if($pageid!=$pages){ $pagecode .= ">"; # 下一页 $pagecode .= ">>"; # 最后一页 } $pagecode .= '
'; return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$perpage); } ?>

PHP视频教程

你可能感兴趣的:(PHP)