0

0

PHP分页怎么加页码省略号_PHP长分页省略显示技巧【教程】

絕刀狂花

絕刀狂花

发布时间:2026-02-09 11:19:02

|

865人浏览过

|

来源于php中文网

原创

PHP分页省略号通过手动构造混合数组实现:固定包含第1页和末页,以当前页为中心取前后各2页构成活跃窗口,若窗口左边界>2则在第1页后插入“...”,右边界同理。

php分页怎么加页码省略号_php长分页省略显示技巧【教程】

PHP分页加省略号不是靠“自动识别长页码”实现的,而是手动控制页码数组的生成逻辑——关键在 range() 的边界裁剪和中间插入 ... 占位符。

怎么生成带省略号的页码数组

核心是构造一个混合类型数组:数字页码 + 字符串 ...。不能直接用 range(1, $totalPages),得拆成三段:1、中间活跃段、$totalPages,再按需插入省略号。

  • 始终包含第 1 页和最后一页
  • 当前页 $currentPage 前后各保留 2 个页码(可调),构成“活跃窗口”
  • 若活跃窗口左边界 > 2,就在第 1 页后加 ...;右边界 ...
  • 避免重复:比如 [1, ..., 5, 6, 7, ..., 100],不能出现 [1, ..., ..., 100]

PHP 实现示例(不依赖框架)

以下函数返回可用于遍历渲染的页码项数组,每项是整数或字符串 ...

function getPaginatedPageNumbers($currentPage, $totalPages, $surround = 2) {
    if ($totalPages <= 1) return [1];
$pages = [];

// 总是加首页
$pages[] = 1;

// 左省略号:首页之后、活跃区之前有空隙
$leftEdge = max(2, $currentPage - $surround);
if ($leftEdge > 2) $pages[] = '...';

// 活跃页码段(含当前页)
$start = max(2, $currentPage - $surround);
$end   = min($totalPages - 1, $currentPage + $surround);
for ($i = $start; $i <= $end; $i++) {
    $pages[] = $i;
}

// 右省略号:活跃区之后、尾页之前有空隙
$rightEdge = min($totalPages - 1, $currentPage + $surround);
if ($rightEdge < $totalPages - 1) $pages[] = '...';

// 总是加尾页(除非已是首页)
if ($totalPages > 1) $pages[] = $totalPages;

return $pages;

}

立即学习PHP免费学习笔记(深入)”;

OmniAudio
OmniAudio

OmniAudio 是一款通过 AI 支持将网页、Word 文档、Gmail 内容、文本片段、视频音频文件都转换为音频播客,并生成可在常见 Podcast ap

下载

调用如 getPaginatedPageNumbers(7, 100) 返回 [1, '...', 5, 6, 7, 8, 9, '...', 100]

渲染时怎么安全处理 ...

模板中遍历时必须区分类型,否则 ... 当作数字会出错(如用于 ):

  • is_string($page) 判断是否为省略号,跳过链接生成
  • 对数字页码,确保 $page !== $currentPage 才输出链接;当前页用 包裹
  • 不要给 ...hrefonclick,它只是视觉占位符
  • 注意 XSS:如果页码来自用户输入(如 $_GET['page']),务必用 (int) 强转后再参与逻辑,... 是硬编码,无风险

为什么不用 CSS `text-overflow: ellipsis` 实现省略

那是文本截断,不是分页逻辑省略。分页省略号代表「中间页码被跳过」,需服务端明确告知前端哪些页存在、哪些被折叠——CSS 无法让 `` 标签凭空消失又留出 `...`,且 SEO 和可访问性要求页码结构语义清晰。

真要偷懒用 CSS,结果就是页码挤成一排后突然截断成 `1 2 3 4 5…`,用户点不到第 50 页,也看不出中间缺了多少页。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

444

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

213

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1517

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

634

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

800

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

772

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

181

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

86

2025.08.07

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

98

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号