Php自用分頁函數程式碼

來源:互聯網
上載者:User
 代碼如下 複製代碼
/*
 * 前台分頁
 *
 * $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[]="<a href='{$page_array['url']}"."1/'>首頁</a>";
    }else{
        $page_array[]="<span class=\"nolink\">首頁</span>";
    }
    //上一頁
    if($prepage) {
        $page_array[]="<a  href='{$page_array['url']}$prepage/'> 上一頁 </a> ";
    }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.="<a href=\"#\" title=\"\">$i</a> ";
        }else{
            $pagenav.="<a href=\"{$page_array['url']}$i/\" title=\"\">$i</a> ";
 
        }
    }
    //數字分頁
    $page_array[]= $pagenav;
    //下一頁
    if($nextpage){
        $page_array[]="<a href='{$page_array['url']}"."$nextpage/'> 下一頁 </a> ";
    }else {
        $page_array[]='';
    }
    //尾頁
    if($nextpage){
        $page_array[]="<a href='{$page_array['url']}"."$lastpage/'>尾頁</a>";
    }else{
        $page_array[]='<span class="nolink">尾頁</span>';
    }
    //記錄數
    $page_array[]="<span>每頁   ".$page_array['dispage']."  條</span> <span>共  ".$page_array['total']."  條紀錄</span>";
    //分頁數
    $page_array[]="共  ".$lastpage." 頁";
 
    //跳頁
    $page_array[] = '<span>跳轉到:</span><input size="4" id="pagenu" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value<0)?1:this.value;location=\''.$page_array['url'].'\'+page;}" />
                    <a href="javascript:void(0)" onclick="javascript:var spage=(window.document.getElementById(\'pagenu\').value==\'\')?1:window.document.getElementById(\'pagenu\').value;location=\''.$page_array['url'].'\'+spage;">Go</a>';
    //第一頁總數
    $firstcount=$firstcount < 1 ? 0 : $firstcount;
    return array('pagenav'=>$page_array,'limit'=>$firstcount,'offset'=> $page_array['dispage'],'allpage'=>$lastpage);
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.