首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 自動適應範圍的分頁程式

     編輯:PHP 綜合知識

效果展示

分頁效果圖

傳統分頁頁碼過多會換行影響美觀,此程式自動適應範圍,固定顯示相鄰頁碼:

<< < 1 2 3 4 5 6 7 > >>
<< < 6 7 8 9 10 11 12 > >>

底線為當前頁,避免過長影響美觀。

完整函數代碼 (含註解)

<?php
function page($page, $total, $phpfile, $pagesize=10, $pagelen=7) {
    $pagecode = '';
    $page = intval($page);
    $total = intval($total);
    if (!$total) return array();
    $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;
    $pagecode = '<div class="page">';
    $pagecode .= "<span>$page/$pages</span>";
    if ($page != 1) {
        $pagecode .= "<a href=\"{$phpfile}?page=1\">&lt;&lt;</a>";
        $pagecode .= "<a href=\"{$phpfile}?page=".($page-1)."\">&lt;</a>";
    }
    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;
            }
        }
    }
    for ($i = $init; $i <= $max; $i++) {
        if ($i == $page) {
            $pagecode .= '<span>'.$i.'</span>';
        } else {
            $pagecode .= "<a href=\"{$phpfile}?page={$i}\">$i</a>";
        }
    }
    if ($page != $pages) {
        $pagecode .= "<a href=\"{$phpfile}?page=".($page+1)."\">&gt;</a>";
        $pagecode .= "<a href=\"{$phpfile}?page={$pages}\">&gt;&gt;</a>";
    }
    $pagecode .= '</div>';
    return array('pagecode' => $pagecode, 'sqllimit' => ' limit '.$offset.','.$pagesize);
}
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved