php自动适应范围的分页代码
前端之家收集整理的这篇文章主要介绍了
php自动适应范围的分页代码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<div class="codetitle"><a style="CURSOR: pointer" data="53699" class="copybut" id="copybut53699" onclick="doCopy('code53699')"> 代码如下:
<div class="codebody" id="code53699">
<?
PHP functionpage($page,$total,$
PHPfile,$pagesize=10,$pagelen=7){
$pagecode='';//定义变量,存放
分页生成的HTML
$page=intval($page);//避免非数字
页码 $total=intval($total);//保证总记录数值类型正确
if(!$total)returnarray();//总记录数为零返回空数组
$pages=ceil($total/$pagesize);//计算总
分页 //处理
页码合法性
if($page<1)$page=1;
if($page>$pages)$page=$pages;
//计算
查询偏移量
$offset=$pagesize*($page-1);
//
页码范围计算
$init=1;//起始
页码数
$max=$pages;//结束
页码数
$pagelen=($pagelen%2)?$pagelen:$pagelen+1;//
页码个数
$pageoffset=($pagelen-1)/2;//
页码个数左右偏移量 //
生成html
$pagecode='<divclass="page">';
$pagecode.="
$page/$pages";//第几页,共几页
//如果是第一页,则
不显示第一页和
上一页的连接
if($page!=1){
$pagecode.="<ahref=\"{$phpfile}?page=1\"><<";//第一页
$pagecode.="<ahref=\"{$phpfile}?page=".($page-1)."\"><";//
上一页 }
//
分页数大于
页码个数时可以偏移
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.="<ahref=\"{$phpfile}?page={$i}\">$i";
}
}
if($page!=$pages){
$pagecode.="<ahref=\"{$phpfile}?page=".($page+1)."\">>";//
下一页 $pagecode.="<ahref=\"{$phpfile}?page={$pages}\">>>";//最后一页
}
$pagecode.="<inputtype=\"text\"size=\"3\"onkeydown=\"if(event.keyCode==13){window.location.href='{$
PHPfile}?page='+this.value;returnfalse;}\"/>