最近忙于游戏,总是觉得没什么好写的,时隔十天得上个重量级的日志了。
上周就完成好了,为以后方便管理于维护,直接封装成方法以后用吧。
给过两个版本的改进,觉得比百度、GG的分页更合理。
共50页的例子,具体可以自行测试:
第1页 1 2 3 4 5 >> 50
第5页 1 << 3 4 5 6 7 >> 50
第7页 1 << 5 6 7 8 9 >> 50
第50页 1 << 46 47 48 49 50
- <?php
- /**
- * zhoz智能分页类
- * $Id: zhoz_com_paging.php
- * @author zhoz
- * @access public
- * @package www.zhoz.com
- * @zhoz 版权所有 转载或引用请注明出处
- */
- function getPagingTag($url, $page_count, $page_num) {
- $paging_tag = null;
- // 每页参数获取与分页处理
- if ($page_count > 1) {
- if ($page_num > 3) {
- if ($page_num - 2 <= 0) {
- $show_start = 1;
- } else {
- $show_start = $page_num - 2;
- }
- if ($page_num + 2 > $page_count) {
- $show_end = $page_count;
- } else {
- $show_end = $page_num + 2;
- }
- } else {
- $show_start = 1;
- $show_end = 5;
- if ($show_end > $page_count) {
- $show_end = $page_count;
- }
- }
- if ($show_start > 1 && ($show_start >= $page_count - 4)) {
- $show_start = $page_count - 4;
- }
- if ($show_end >= $page_count) {
- $show_end = $page_count;
- }
- if ($page_num > 3 && $show_start > 1) {
- $paging_tag = "<a href=\"" . $url . "?page_num=1\">1</a> ";
- if ($show_start-1 > 1) {
- $paging_tag .= "<a href=\"" . $url . "?page_num=" . ($show_start-1) . "\"><<</a> ";
- }
- }
- // 中