PHP分页函数封装减少重复代码编写。分页函数接收三个参数:$total记录总数,$perpage每页显示条数,$currentpage当前页码。函数内部计算总页数$totalpages = ceil($total / $perpage)。函数计算偏移量$offset = ($currentpage - 1)*$perpage。函数生成页码范围。函数返回一个数组,数组包含$offset、$totalpages、分页HTML字符串。
分页函数生成页码列表。函数判断$totalpages是否大于1。若$totalpages小于等于1,函数返回空字符串。函数生成上一页按钮。上一页链接指向$currentpage - 1。若$currentpage等于1,上一页按钮添加disabled类。函数生成下一页按钮。下一页链接指向$currentpage + 1。若$currentpage等于$totalpages,下一页按钮添加disabled类。函数生成数字页码循环。函数设置显示页码数量$displayPages = 5。函数计算起始页码$start = max(1, $currentpage - floor($displayPages / 2))。函数计算结束页码$end = min($totalpages, $start + $displayPages - 1)。函数在$start到$end范围内生成页码链接。当前页码添加active类。
函数组装HTML分页结构。函数使用
调用分页函数示例:$page = isset($_GET['page']) ? intval($_GET['page']) : 1。$total = 100。$perpage = 10。$pagination = pagination($total, $perpage, $page)。$offset = $pagination['offset']。$html = $pagination['html']。SQL查询语句添加LIMIT $offset, $perpage。遍历结果集输出数据。页面输出$html。
分页函数封装在单独文件pagination.php中。其他页面通过include_once引入pagination.php。函数名pagination避免与其他函数冲突。函数参数支持默认值,$perpage默认10。函数内部使用$_SERVER['REQUEST_URI']获取当前URL。函数解析URL保留其他GET参数。函数生成链接时附加page参数。
分页样式使用CSS控制。ul.pagination li设置display: inline-block。当前页码背景色高亮。禁用状态添加灰色样式。