PHP简单分页如何省几个数字?
程序员文章站
2022-05-26 21:39:02
...
这是我写的PHP简单分页 正常输出 1234567 没有问题,但是 要是100多页, 怎样在 12345....100 省略中间 多个数字呢?
原效果: 上一页 123456 下一页
要是100个页面 变成: 上一页 123456.......100 下一页
回复内容:
这是我写的PHP简单分页 正常输出 1234567 没有问题,但是 要是100多页, 怎样在 12345....100 省略中间 多个数字呢?
原效果: 上一页 123456 下一页
要是100个页面 变成: 上一页 123456.......100 下一页
涉及到这种变量较多的需求,可以先里清楚:哪些变量在一定条件是是不变的,而哪一些又是动态变化的。为了把问题说清楚,下面模拟定义几个涉及到分页的变量:
$total 总记录数
$pagesize 每页的记录数
$pagenum 总页码数
$page 当前页
$bothnum 当前页码两边显示的页码数量
好了,对于分页,涉及到变量就这么几个。为了解决这个问题,我们先固定住几个变量,如下
$total = 100;
$pagesize = 10;
$pagenum = $total / $pagesize = 10;
$bothnum = 5; //表示当前页码两边显示 5 个页码数量
因此,实际上目前就只有一个变量了就是 $page
表示当前页,所以在组装分页格式的时候,你只要关注 $page
参数的变化就可以了。
为了方便理解,我们准备把组装的分页信息都存储到一个字符串 $pagestr
中。好了准备工作已经完毕,下面就开始制作分页吧~~。
-
上一页
if($page == 1) { $pagestr .= '上一页'; } else { $pagestr .= '上一页' }
-
中间的数字页码
// 想象分页如下,目前第 10 页,它两边最多只有 5 (bothnum) 个数字 1 ... 5 6 7 8 9 *10* 11 12 13 14 15 ... 100