Php自用分页函数程序代码

作者:袖梨 2022-06-24
 代码如下 复制代码
/*
 * 前台分页
 *
 * $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);
}

相关文章

精彩推荐