两款实用php分页代码
分页的就是根据符合条件的总记录除上每页显示的记录就等页数,原理相当简单了公式为 $total = ceil($toalRecord / $perpageNum);,php实例代码如下:
- function outpege($ps,$page)
- {
- // $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
- $max = ($page >= 5)? $page+5:10;
- if($max > $ps)$max =$ps;
- $min =($page-5);
- if($min<1) $min =1;
- if($page>1)$pagelist = "<a href="?page=1">首页</a>";
- for($i=$min;$i<=$max;$i++){
- $pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
- }
- $pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
- return $pagelist;
- }
分页代码二:
- // 分页, {总记录数,每页显示数,当前页,最多显示多少页,分页url}
- function page($toalrecord, $perpagenum, $curpage, $url) {
- $total = ceil($toalrecord / $perpagenum);
- $pagearr = array_slice(range(1, $total), max(0, $curpage - ~~($perpagenum / 2)), $perpagenum);
- if($pagearr[0] != 1) {
- array_unshift($pagearr, sprintf("<a href='{$url}%s'><<</a>", $pagearr[0] - 1));
- }
- if($pagearr[count($pagearr)-1] != $total) {
- array_push($pagearr, sprintf("<a href='{$url}%s'>>></a>", $pagearr[count($pagearr)-1] + 1));
- }//开源代码phpfensi.com
- foreach ( $pagearr as $i => &$v ) {
- $v = is_numeric($v) ? "<a href='{$url}{$v}'>{$v}</a>" : $v;
- }
- return "<a href='{$url}'>首页</a>" . implode('', $pagearr) . "<a href='{$url}" . $total . "'>尾页</a>";
- }
- 调用
- page(99/*总记录*/, 9/*每页显示数*/, page/*当前页,从1开始*/, 'http://www.phpfensi.com/?page='/*url前缀*/);