这是我写的PHP简单分页 正常输出 1234567 没有问题,但是 要是100多页, 怎样在 12345....100 省略中间 多个数字呢?
<code> <div class="page"> <?php if ($page != 1) { ?> <a href="user_list.php?page=<?php%20echo%20%24page%20-%201;?>">上一页</a> <?php } for ($i=1;$i<=$pagenum;$i++) { //循环显示出页面 if($i==$page){ echo '<b>'.$i.''; } else { echo "<a href="user_list.php?page=%22.%24i.%22">".$i."</a>"; } } if ($page <a href="user_list.php?page=<?php%20echo%20%24page%20+%201;?>">下一页</a> <?php } ?> </div></code>
原效果: 上一页 123456 下一页
要是100个页面 变成: 上一页 123456.......100 下一页
回复内容:
这是我写的PHP简单分页 正常输出 1234567 没有问题,但是 要是100多页, 怎样在 12345....100 省略中间 多个数字呢?
<code> <div class="page"> <?php if ($page != 1) { ?> <a href="user_list.php?page=<?php%20echo%20%24page%20-%201;?>">上一页</a> <?php } for ($i=1;$i<=$pagenum;$i++) { //循环显示出页面 if($i==$page){ echo '<b>'.$i.''; } else { echo "<a href="user_list.php?page=%22.%24i.%22">".$i."</a>"; } } if ($page <a href="user_list.php?page=<?php%20echo%20%24page%20+%201;?>">下一页</a> <?php } ?> </div></code>
原效果: 上一页 123456 下一页
要是100个页面 变成: 上一页 123456.......100 下一页
涉及到这种变量较多的需求,可以先里清楚:哪些变量在一定条件是是不变的,而哪一些又是动态变化的。为了把问题说清楚,下面模拟定义几个涉及到分页的变量:
<code>$total 总记录数 $pagesize 每页的记录数 $pagenum 总页码数 $page 当前页 $bothnum 当前页码两边显示的页码数量 </code>
好了,对于分页,涉及到变量就这么几个。为了解决这个问题,我们先固定住几个变量,如下
<code>$total = 100; $pagesize = 10; $pagenum = $total / $pagesize = 10; $bothnum = 5; //表示当前页码两边显示 5 个页码数量 </code>
因此,实际上目前就只有一个变量了就是 $page
表示当前页,所以在组装分页格式的时候,你只要关注 $page
参数的变化就可以了。
为了方便理解,我们准备把组装的分页信息都存储到一个字符串 $pagestr
中。好了准备工作已经完毕,下面就开始制作分页吧~~。
-
上一页
<code> if($page == 1) { $pagestr .= '<span>上一页</span>'; } else { $pagestr .= '<a href="'.%7B%24page-1%7D'">上一页</a>' } </code>
-
中间的数字页码
<code> // 想象分页如下,目前第 10 页,它两边最多只有 5 (bothnum) 个数字 1 ... 5 6 7 8 9 *10* 11 12 13 14 15 ... 100 </code>
-
首页(第 1 页)
<code>if(($page - $bothnum) > 1) { $pagestr .= '<a href="?page=1"></a>'; $pagestr .= '<span class="dotted">...</span>'; } </code>
-
当前页的左边
<code> for($i=$bothnum; $i>=1; $i--) { if(($page - $i) '; } </code>
-
当前页
<code> $pagestr .= '<span class="current">'.$page.'</span>'; </code>
-
当前页的右边
<code>for($i=1; $i $pagenum) { // 当前页右边最多 bothnum 个数字 break; } $pagestr .= '<a href="?page='.(%24page%20+%20%24i)."></a>'; } </code>
-
尾页(第 100 页)
<code>if(($page + $bothnum) ...'; $pagestr .= '<a href="?page='.%24pagenum.'"></a>'; } </code>
-
-
下一页
<code> if($page == $pagenum) { $pagestr .= '<span>下一页</span>'; } else { $pagestr .= '<a href="?page='.%7B%24page+1%7D'">下一页</a>' } </code>
原理就基本差不多是这样,其实这是对制作分页时思路的一种整理,上面的代码并没有经过测试,可以自己调试一下。
当然了,你也可以把它封装称为一个分页类,如果搞掂,也希望能够分享出来吧。
最后,实际上,还有比如并没有对分页参数进行处理,这个需要自己去做,只要把一些额外参数拼接上了就可以了,比较简单。
你要先定义一个$limitPage,比如为10,最多显示10页。
那你的循环里面就不能用$pagenum,你要先比较和$limitPage的大小,然后选择来循环输出。多的就有省略号,和输出最后一页。
这里面有很多情况要考虑,总页面数为0,总页面数小于等于$limitPage,总页面数大于$limitPage。
当前页面数和剩余页面数跟$limitPage的比较。细节比较多,好好理一下。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。