分页函数

本文介绍了一种使用PHP实现分页显示的方法。该方法通过计算总页数、当前页数等参数来生成分页链接,并根据分页条显示的最大数目调整显示范围。适用于需要分页显示大量数据的网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

////实现分页显示
/* $pageCount  记录总数
 * $pageSize   每页显示记录条数
 * $pageTotalNumber 总页数
 * $pageURL    本页面的url
 * $pageMenuLimit 分页条显示的最大数目
 */
function showPage($pageCount,$pageSize,$pageMenuLimit){
    $pageTotalNumber = intval(ceil($pageCount/$pageSize));
    $pageURL = $_SERVER["REQUEST_URI"];
    //当前页的页数,从REQUEST获得
    if(isset($_GET['pageId'])&& !empty($_GET['pageId'])){
        $pageURL =  str_replace('pageId='.$_GET['pageId'], 'pageId=', $pageURL);
        $pageId = intval($_GET['pageId']);
    }else{
        //第一次访问
        $pageId = 1;
        $pageURL .= strpos($pageURL, '?')===false ? '?pageId=' : '&pageId=';
    }
    //每页的起,始记录数
    if ($pageId == 1 ) {
        $pageStartNum = 0;
    } else {
         $pageStartNum = ($pageId -1) * $pageSize;
    }
    $pageMenuMiddle = intval(ceil($pageMenuLimit/2));
    $pageEndNum = $pageStartNum + $pageSize;
    $pageDisplay = ($pageTotalNumber <= $pageMenuLimit) ? $pageTotalNumber : $pageMenuLimit;//分页条显示页面数字限制
    if($pageTotalNumber>1){
        if($pageId == 1){
            $pageLinks = "<span class='current'>".$pageId."</span>";
            for($i=$pageId+1;$i<=$pageDisplay;$i++){
                $pageLinks .= "<a href=".$pageURL.$i.">".$i."</a>";
            }
            $pageLinks .= "<a href=".$pageURL.($pageId+1).">&gt;</a>";
        } else if($pageId >1&&$pageId<$pageTotalNumber){
            $pageLinks = "<a href=".$pageURL.($pageId-1).">&lt;</a>";
            if(($pageId>$pageMenuMiddle)&&($pageId<$pageTotalNumber-$pageMenuMiddle+1)){
                for($i=$pageId-$pageMenuMiddle+1;$i<=$pageId+$pageMenuMiddle-1;$i++){
                    if($i == $pageId){
                        $pageLinks .= "<span class='current'>".$pageId."</span>";
                    } else {
                        $pageLinks .= "<a href=".$pageURL.$i.">".$i."</a>";
                    }
                }
            } else if($pageId <= $pageMenuMiddle) {
                for($i=1;$i<=$pageDisplay;$i++){
                    if($i == $pageId){
                        $pageLinks .= "<span class='current'>".$pageId."</span>";
                    } else {
                        $pageLinks .= "<a href=".$pageURL.$i.">".$i."</a>";
                    }
                }
            } else if($pageId>=$pageTotalNumber-$pageMenuMiddle+1) {
                for($i=$pageTotalNumber-$pageDisplay+1;$i<=$pageTotalNumber;$i++){
                    if($i == $pageId){
                        $pageLinks .= "<span class='current'>".$pageId."</span>";
                    } else {
                        $pageLinks .= "<a href=".$pageURL.$i.">".$i."</a>";
                    }
                }
            }
            $pageLinks .= "<a href=".$pageURL.($pageId+1).">&gt;</a>";
        } else{
            $pageLinks = "<a href=".$pageURL.($pageId-1).">&lt;</a>";
            for($i=$pageTotalNumber-$pageDisplay+1;$i<$pageTotalNumber;$i++){
                $pageLinks .= "<a href=".$pageURL.$i.">".$i."</a>";
            }
            $pageLinks .= "<span class='current'>".$pageId."</span>";
        }
    }
    $aryPage['count']     = $pageCount;
    $aryPage['startNum']  = $pageStartNum;
    $aryPage['endNum']    = $pageEndNum;
    $aryPage['links']     = $pageLinks;
    $aryPage['pageId']    = $pageId;
    $aryPage['totalPage'] = $pageTotalNumber;
    return $aryPage;
}

 回头还得把html代码 抽离出来,用str_replace实现分离

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值