1
msg7086 2015-01-03 06:44:35 +08:00
只说个思路。把首页、当前页向前向后、最后一页扔进数组。然后unique一下。
|
2
sumhat 2015-01-03 08:13:03 +08:00 via Android
这是一个O(7)的函数,即使写成了O(77),也不影响效率吧
|
4
mcfog 2015-01-03 11:35:37 +08:00
https://gist.github.com/mcfog/2df96e37fc7fe3edbc6e#file-paginator-php-L119
无他,一个for循环里面有复杂的判断而已 |
5
feiyuanqiu 2015-01-03 12:37:12 +08:00
这些小东西其实应该自己琢磨的,也没有什么难度,问别人的也不一定就比自己想出来的实现要好。
这是我刚才写的,比较简单: ```php <?php function simplePaginator($current, $last, $url_func = null, $start = 1, $range = 2, $rule = '...') { $result = range($current - $range > $start ? $current - $range : $start, $current + $range < $last ? $current + $range : $last); if (reset($result) != $start) { array_unshift($result, $start, $rule); } if (end($result) != $last) { array_push($result, $rule, $last); } if ($url_func && function_exists($url_func)) { $result = array_map($url_func, $result); } return $result; } function singlePagiUrl($p) { return is_numeric($p) ? "<a href='?p={$p}'>{$p}</a>" : $p; } echo '<pre>';print_r(simplePaginator(16, 15, 'singlePagiUrl')); ?> ``` 楼上不要贴 gist 啊,我卡了半天 |
6
xoxo 2015-01-03 12:38:26 +08:00
何不用一些前端JS框架来做呢
|
8
ab OP @mcfog @feiyuanqiu 谢谢
|
9
bertonzh 2015-01-04 16:18:44 +08:00
https://github.com/meowtec/page-navigator
这是我前段时间写的分页,一开始用 js 写的,后来用 Python 和 php 重写了两份。 算法在 pageAnalyse 方法中,思路和你的不太一样。 |