代码如下 | 复制代码 |
/* * 前台分页 * * $page_array = array( * 'totle' =>10, //总数 * 'dispage' =>10, //每页显示条数 * 'url' =>'/article/list/',//url地址 * 'now_page', =>1, //当前所在页数 * ); * * @return pagenav */ function front_page( $page_array ){ //分页判断 $lastpage = ceil($page_array['total'] / $page_array['dispage']); //最后一页 $page_array['now_page'] = min( $lastpage , $page_array['now_page'] );//比较当前页数和最后一页 $prepage = $page_array['now_page'] - 1;//上一页 $nextpage = ($page_array['now_page'] == $lastpage ? 0 : $page_array['now_page'] + 1 );//下一页 $firstcount = ($page_array['now_page']-1) * $page_array['dispage']; if( $lastpage <= 1) return false;//最后一页小于1,则直接返回 //首页 if($prepage){ $page_array[]="首页"; }else{ $page_array[]="首页"; } //上一页 if($prepage) { $page_array[]=" 上一页 "; }else{ $page_array[]=''; } //显示的数字分页条数 $pagenum=5; $offset=2;//偏移两 $from=$page_array['now_page'] - $offset;//起始 $to=$page_array['now_page'] + $pagenum-$offset-1;//终止 if($pagenum>$lastpage){ $from=1; $to=$lastpage; }else{ if($from<1){ $to=$page_array['now_page'] + 1 - $from; $from=1; if(($to-$from)<$pagenum && ($to-$from)<$lastpage){ $to=$pagenum; } }elseif($to>$lastpage){ $from=$page_array['now_page'] - $lastpage+$to; $to=$lastpage; if(($to-$from)<$pagenum && ($to-$from)<$lastpage){ $from=$lastpage-$pagenum+1; } } } for($i=$from;$i<=$to;$i++){ if($i == $page_array['now_page']){ $pagenav.="$i "; }else{ $pagenav.="$i "; } } //数字分页 $page_array[]= $pagenav; //下一页 if($nextpage){ $page_array[]=" 下一页 "; }else { $page_array[]=''; } //尾页 if($nextpage){ $page_array[]="尾页"; }else{ $page_array[]='尾页'; } //记录数 $page_array[]="每页 ".$page_array['dispage']." 条 共 ".$page_array['total']." 条纪录"; //分页数 $page_array[]="共 ".$lastpage." 页"; //跳页 $page_array[] = '跳转到:javascript:if(event.keyCode==13){var page=(this.value<0)?1:this.value;location=\''.$page_array['url'].'\'+page;}" /> Go'; //第一页总数 $firstcount=$firstcount < 1 ? 0 : $firstcount; return array('pagenav'=>$page_array,'limit'=>$firstcount,'offset'=> $page_array['dispage'],'allpage'=>$lastpage); } |