两款实用php分页代码

分页的就是根据符合条件的总记录除上每页显示的记录就等页数,原理相当简单了公式为 $total = ceil($toalRecord / $perpageNum);,php实例代码如下:

  1. function outpege($ps,$page)
  2. {
  3. // $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
  4. $max = ($page >= 5)? $page+5:10;
  5. if($max > $ps)$max =$ps;
  6. $min =($page-5);
  7. if($min<1) $min =1;
  8. if($page>1)$pagelist = "<a href="?page=1">首页</a>";
  9. for($i=$min;$i<=$max;$i++){
  10. $pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
  11. }
  12. $pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
  13. return $pagelist;
  14. }

分页代码二:

  1. // 分页, {总记录数,每页显示数,当前页,最多显示多少页,分页url}
  2. function page($toalrecord, $perpagenum, $curpage, $url) {
  3. $total = ceil($toalrecord / $perpagenum);
  4. $pagearr = array_slice(range(1, $total), max(0, $curpage - ~~($perpagenum / 2)), $perpagenum);
  5. if($pagearr[0] != 1) {
  6. array_unshift($pagearr, sprintf("<a href='{$url}%s'><<</a>", $pagearr[0] - 1));
  7. }
  8. if($pagearr[count($pagearr)-1] != $total) {
  9. array_push($pagearr, sprintf("<a href='{$url}%s'>>></a>", $pagearr[count($pagearr)-1] + 1));
  10. }//开源代码phpfensi.com
  11. foreach ( $pagearr as $i => &$v ) {
  12. $v = is_numeric($v) ? "<a href='{$url}{$v}'>{$v}</a>" : $v;
  13. }
  14. return "<a href='{$url}'>首页</a>" . implode('', $pagearr) . "<a href='{$url}" . $total . "'>尾页</a>";
  15. }
  16. 调用
  17. page(99/*总记录*/, 9/*每页显示数*/, page/*当前页,从1开始*/, 'http://www.phpfensi.com/?page='/*url前缀*/);