从前分析过DISCUZ分页函数,感觉非常好!


———————————-DESCRIPTION——————————————————-
写了个PHP分页函数, 最近考试考的好烦,上午刚考完四级….还有其他好几科都没考呢,平时光坐在电脑前code了,考前得抱下佛脚了…..所以最近就没怎么学习过PHP,只是在写我的 ajax+php留言本 ,不过主要是在学习 js,哈哈…..
从前分析过 DISCUZ分页函数,感觉非常好!
PHP代码
  1. <?
  2. function page($page_num,$cur_page,$per_group,$base_url){
  3. $base_url .= strpos($base_url, ‘?’) ? ‘&’ : ‘?’;
  4. $page_val = ;
  5. if ($page_num < 1) {
  6. return $page_val;
  7. } elseif($page_num == 1) {
  8. return $page_val = 1;
  9. }
  10. $group_ok = !(($page_num-1)%($per_group-1));
  11. //计算一共有多少组
  12. if($group_ok) {
  13. $group_num = ($page_num-1)/($per_group-1);
  14. } else {
  15. $group_num = ceil(($page_num-1)/($per_group-1));
  16. }
  17. //判断当前页是否为一组的最后一个
  18. $is_last_page = !(($cur_page-1)%($per_group-1));
  19. //计算当前在的组数
  20. if($is_last_page) {
  21. $cur_group = ($cur_page-1)/($per_group-1) + 1;
  22. } else {
  23. $cur_group = ceil(($cur_page-1)/($per_group-1));
  24. }
  25. //计算显示的起始页
  26. $from = ($cur_group - 1) * ($per_group-1) + 1;
  27. $from = $cur_group <= 1 ? 1 :$from;
  28. $to = $from + $per_group;
  29. $to = $to > $page_num ? $page_num + 1 : $to;
  30. for($a = $from; $a < $to; $a++){
  31. if( $a != $cur_page) {
  32. $page_val .= ‘<a href =’.$base_url.‘page=’.$a.‘>’.$a.‘</a>’;
  33. } else {
  34. $page_val .= $a;
  35. }
  36. }
  37. return $page_val;
  38. }
  39. //echo page(6,3,3,’page.php’);
  40. ?>
写的比较仓促,发现错误请及时提出,谢谢!~