01 | /** |
02 | * 自定义分页方法 |
03 | * @param unknown_type $url #分页url,页码采用'%s'表示,例如:http://test.ebers.com/tags/xxx/%s/ |
04 | * @param unknown_type $cur_page #当前页码 |
05 | * @param unknown_type $page_fix #当前页码前后需要显示多少个页码 |
06 | * @param intval $total_rows #数据总数 |
07 | * @param intval $pagesize #每页显示多少数据 |
08 | * @param string $cur_page_calss #当前页css样式名称 |
09 | */ |
10 | public function pagenation($url, $cur_page=1, $page_fix=2, $total_rows=0, $pagesize=10, $cur_page_calss='disable'){ |
11 | #计算总页数 |
12 | $pagesize = $pagesize>0?$pagesize:10; |
13 | $total_page = ceil($total_rows / $pagesize); |
14 | |
15 | $code = ''; |
16 | if($total_page>1){ |
17 | $pager = array(); |
18 | #首页 |
19 | $pager[] = sprintf( '<ul><li><a href="%s">首页</a></li>', sprintf($url, 1) ); |
20 | |
21 | #页码列表 |
22 | for($page_num=$cur_page-$page_fix; $page_num<$cur_page+$page_fix; $page_num++){ |
23 | if($page_num<1 || $page_num>$total_page){ |
24 | continue; |
25 | } |
26 | $pager[] = sprintf( '<li class="%s"><a href="%s">%s</a></li>', ( $page_num==$cur_page?$cur_page_calss:'' ), sprintf($url, $page_num), $page_num ); |
27 | } |
28 | |
29 | #末页 |
30 | $pager[] = sprintf( '<li><a href="%s">末页</a></li><li>共%s条,第%s/%s页</li></ul>', sprintf($url, $total_page), $total_rows, $cur_page, $total_page ); |
31 | |
32 | $code = implode("\\n", $pager); |
33 | unset($pager); |
34 | } |
35 | |
36 | return $code; |
37 | } |
本文介绍了一种自定义分页方法的实现细节,包括如何通过URL传递页码参数、计算总页数、生成页码链接等。此方法支持设置当前页前后显示的页码数量,并提供了用于美化页面的CSS样式。

被折叠的 条评论
为什么被折叠?



