php长页自动分页,PHP自动适应范围的页码分页程序

效果图:

9382492c3e7b50f85038dabae3621caa.gif

记得以前看到过一个页码方式的分页效果,页码数多了折行继续显示一直到60多页,呵呵!有点影响美观!

于是写了一个,可以自动适应范围的页码分页程序

也就是说,页码格式如下

<< < 1 2 3 4 5 6 7 > >>

<< < 6 7 8 9 10 11 12 > >>

下划线为当前页,这样就可以固定显示一个相近的页码,避免太长影响美观

代码加了注释,主要是新手看看,呵呵 ,写这个函数,没有考虑表现结构分离问题,高手就不要追究了!';

$pagecode.="$page/$pages";//第几页,共几页

//如果是第一页,则不显示第一页和上一页的连接

if($page!=1){

$pagecode.="<

$pagecode.="

}

//分页数大于页码个数时可以偏移

if($pages>$pagelen){

//如果当前页小于等于左偏移

if($page<=$pageoffset){

$init=1;

$max = $pagelen;

}else{//如果当前页大于左偏移

//如果当前页码右偏移超出最大分页数

if($page+$pageoffset>=$pages+1){

$init = $pages-$pagelen+1;

}else{

//左右偏移都存在时的计算

$init = $page-$pageoffset;

$max = $page+$pageoffset;

}

}

}

//生成html

for($i=$init;$i<=$max;$i++){

if($i==$page){

$pagecode.=''.$i.'';

} else {

$pagecode.="$i";

}

}

if($page!=$pages){

$pagecode.=">";//下一页

$pagecode.=">>";//最后一页

}

$pagecode.='';

return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);

}

?>

函数参数:

$page 当前$_GET获得的页码

$total 总记录数

$phpfile 页码连接文件名

$pagesize 不用解释了吧 呵呵

$pagelen 最多显示几个页码 注意(奇数),对称嘛!

函数返回一个数组:

pagecode 索引对应的内容是 生成的HTML 代码

sqllimit 索引对应的是sql limit 后缀

使用方法:

css

#p#副标题#e#

完善:加了页码跳转文本框

以下为引用的内容:

';

$pagecode.="$page/$pages";//第几页,共几页

//如果是第一页,则不显示第一页和上一页的连接

if($page!=1){

$pagecode.="<

$pagecode.="

}

//分页数大于页码个数时可以偏移

if($pages>$pagelen){

//如果当前页小于等于左偏移

if($page<=$pageoffset){

$init=1;

$max = $pagelen;

}else{//如果当前页大于左偏移

//如果当前页码右偏移超出最大分页数

if($page+$pageoffset>=$pages+1){

$init = $pages-$pagelen+1;

}else{

//左右偏移都存在时的计算

$init = $page-$pageoffset;

$max = $page+$pageoffset;

}

}

}

//生成html

for($i=$init;$i<=$max;$i++){

if($i==$page){

$pagecode.=''.$i.'';

} else {

$pagecode.="$i";

}

}

if($page!=$pages){

$pagecode.=">";//下一页

$pagecode.=">>";//最后一页

}

$pagecode.="";

return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);

}

?>

以下是新手使用说明

以下为引用的内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值