问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助。。。 php分页太多 怎么控制每次显示9个页码

发布网友 发布时间:2022-04-20 07:10

我来回答

4个回答

热心网友 时间:2022-04-20 08:39

/**
 * 分页函数
 *
 * @param $num 信息总数
 * @param $curr_page 当前分页
 * @param $perpage 每页显示数
 * @param $urlrule URL规则
 * @param $array 需要传递的数组,用于增加额外的方法
 * @return 分页
 */
function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {
    if(defined('URLRULE') && $urlrule == '') {
        $urlrule = URLRULE;
        $array = $GLOBALS['URL_ARRAY'];
    } elseif($urlrule == '') {
        $urlrule = url_par('page={$page}');
    }
    $multipage = '';
    if($num > $perpage) {
        $page = $setpages+1;
        $offset = ceil($setpages/2-1);
        $pages = ceil($num / $perpage);
        if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);
        $from = $curr_page - $offset;
        $to = $curr_page + $offset;
        $more = 0;
        if($page >= $pages) {
            $from = 2;
            $to = $pages-1;
        } else {
            if($from <= 1) {
                $to = $page-1;
                $from = 2;
            }  elseif($to >= $pages) {
                $from = $pages-($page-2);
                $to = $pages-1;
            }
            $more = 1;
        }
        $multipage .= '<a class="a1">'.$num.L('page_item').'</a>';
        if($curr_page>0) {
            $multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous').'</a>';
            if($curr_page==1) {
                $multipage .= ' <span>1</span>';
            } elseif($curr_page>6 && $more) {
                $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..';
            } else {
                $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>';
            }
        }
        for($i = $from; $i <= $to; $i++) {
            if($i != $curr_page) {
                $multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>';
            } else {
                $multipage .= ' <span>'.$i.'</span>';
            }
        }
        if($curr_page<$pages) {
            if($curr_page<$pages-5 && $more) {
                $multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';
            } else {
                $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';
            }
        } elseif($curr_page==$pages) {
            $multipage .= ' <span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">'.L('next').'</a>';
        } else {
            $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';
        }
    }
    return $multipage;
}

思路就是当分页大于9的时候,就把中间部分的分页显示成。。。就行了。

通过if判断当大于9,就执行

if($curr_page<$pages-5 && $more) {

具体的你看一下代码就明白了。

热心网友 时间:2022-04-20 09:57

这个需要看你的分页的类了,我有一个分页的类,每页的条数和页码的控制都做过处理。

热心网友 时间:2022-04-20 11:32

$pageAll = 100;
$pageNow = isset($_GET['id'])?$_GET['id']:1;
if ($pageNow < 1) {
$pageNow = 1;
}
if ($pageNow > $pageAll) {
$pageNow = $pageAll;
}
if ($pageNow <10) {
$start = 1;
$end = 9;
}
elseif ($pageNow >= 10 && $pageNow < 92) {
$start = $pageNow - 4;
$end = $pageNow+4;
}
elseif ($pageNow >= 92) {
$start = 92;
$end = 100;
}{

}
$pre = $pageNow - 1;
$next = $pageNow + 1;
echo "<a href = 'test.php?id=$pre'>pre</a>".' ';
for ($i=$start; $i <= $end ; $i++) {
echo "<a href = 'test.php?id=$i'>$i".''."</a>".' ';
}
echo ' '."<a href = 'test.php?id=$next'>next</a>".' ';

热心网友 时间:2022-04-20 13:23

做个分页处理类完美搞定
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医生你好 我脸上跟额头上面长了很多小粉刺 请问这是什么原因引起的 要... 世界上到底是先有的鸡还是先有的蛋 请问是先有蛋,还是先有鸡? Excel怎么设置行高并且垂直 晚上梦见一条又长又小的青蛇追着咬我最后被我爸爸打死了代表什么... 专业技能怎么填我来教你 QQ空间曾经有一个左右接东西 小游戏叫什么名字 帽子先生接东西游戏介绍 趣味卡车接东西游戏介绍 怀孕50天B超的表现 请问大家有为了忘记一个女孩而去相亲的么 PSP侠盗飞车罪恶都市电台vcfl radio里面的歌 施人诚为飞轮海和SHE写过那些歌? 杜鹃科的生物分类 世界四大海螺 鲨鱼血是什么颜色 中国的四大名螺是? 为了夫妻俩的拍摄事业,不上班,不摆摊,带着老婆天天学软件,学拍摄,这样可行吗? s-z07 -5蓝牙自拍神器 使用说明 搞笑情侣图片拍照软件,有那种半个身体动作的软件。 送女朋友的手机上应该下载什么软件 电脑电源可以废物利用吗? 正向代理 反向代理 我有两个电脑电源,怎么能再利用呢? 旧电脑电源如何才能再利用起来? 多余电脑的电源,怎么再利用? 从上海市区到安徽合肥的肥东县怎么走? 电脑的电源还有利用价值吗 旧电脑电源怎么再次利用 合肥有什么景点 中药里面有陈皮,喝了上火吗 php分页,页码数字怎么再分页? 怎么下载美服炉石。 我在usbattle.net下载炉石传说。选择English(us)可是客户端 在哪里可以下载到支持美服的炉石传说安卓版 炉石传说怎么去美服玩儿?怎么改语言? 有没有大神知道炉石传说美服的下载地址,或者直接给我app文件,谢谢了 《炉石传说》怎么打美服? 我电脑里有国服的炉石传说,但怎样才能玩美服的? 草房子(红门)中的杜小康的性格特点。 在红门一和红门二围绕杜小康写了许多件事,请用列车图梳理杜小康成长的主要事件_百度问一问 _百度问一问 草房子红门(一)杜小康因为什么事破产了?? 草房子《红门(一)》最后一句:桑桑向杜小康摇了摇手,杜小康向桑桑摇了摇手,有什么用意_百度问一问 杜小康还有哪些性格 快手黄钻那个能领钱吗能赚钱吗 草房子里的杜小康是什么样的人 草房子 红门 (二)主要内容 草房子中红门(一)中对杜小康的外貌描写,要摘抄原句。 仿写杜小康的心灵日记 草房子 红门(一)主要内容