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 | } |