PHP分页函数

这几天在做一个网站,需要解决分页问题,于是冥思苦想,写了个分页函数。

说明一下,分页函数是参考新浪博客分页样式做的,不过代码当然是自己写的啦。呵呵。

 function page($url,$total,$pageid=1,$psize=25,$half=3){ //分页函数,$total=总共的条数;$pageid=当前显示的页号;$psize=每页显示的条数;$half=$pageid前后显示的条数 $totalpage=ceil($total/$psize);//总共的页数 $i=0; $arr=array(); $rand=rand(10,30); if($totalpage<2){//小于2页,不显示分页 return; } if($pageid>1){//最前面几个 $arr[$i]["msg"]="上一页"; $arr[$i]["url"]=$url."?pageid=".($pageid-1)."&id=".$rand; $i++; $arr[$i]["msg"]=1; $arr[$i]["url"]=$url."?pageid=1&id=".$rand; if($pageid-$half>2){//是否显示 ... $i++; $arr[$i]["msg"]="..."; } $i++;/**/ } for($j=0;$j<$half;$j++,$i++){//$pageid前面的[最多$half个] if($pageid-$half+$j<2){// $i--;//使$i保持不变 continue; }/**/ $arr[$i]["msg"]=$pageid-$half+$j; $arr[$i]["url"]=$url."?pageid=".($pageid-$half+$j)."&id=".$rand; } {//中间项 $arr[$i]["msg"]="[".$pageid."]"; $arr[$i]["url"]=$url."?pageid=".($pageid)."&id=".$rand; $i++; } for($j=0;$j<$half;$j++,$i++){//$pageid后面的[最多($half-1)个] if($pageid+$j+1>$totalpage){// $i++; break; } $arr[$i]["msg"]=$pageid+$j+1; $arr[$i]["url"]=$url."?pageid=".($pageid+$j+1)."&id=".$rand; } if($pageid+$half+1<$totalpage){//最后一页,有省略号 $arr[$i]["msg"]="..."; $i++; $arr[$i]["msg"]=$totalpage; $arr[$i]["url"]=$url."?pageid=".($totalpage)."&id=".$rand; $i++; } if($pageid+$half+1==$totalpage){//最后一页,无省略号 $arr[$i]["msg"]=$totalpage; $arr[$i]["url"]=$url."?pageid=".($totalpage)."&id=".$rand; $i++; } if($pageid!=$totalpage){//是否显示下一页 $arr[$i]["msg"]="下一页"; $arr[$i]["url"]=$url."?pageid=".($pageid+1)."&id=".$rand; } $msg="<div><span>共".$total."条</span> "; foreach($arr as $value ){//转为html if(strcmp("...",$value["msg"])==0){ $msg.=$value["msg"]." "; } else{ $msg.="<span><a href="/" mce_href="/""".$value["url"]."/">".$value["msg"]."</a></span> "; } } return $msg."</div>"; }

你可能感兴趣的:(PHP,function,url)