php简单分页类实现方法

这篇文章主要介绍了php简单分页类实现方法,实例分析了php分页类的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了php简单分页类实现方法,分享给大家供大家参考,具体如下:

  1. class PageModel {
  2. /**
  3. * 获取分页数组
  4. * @param unknown $page 当前页面数
  5. * @param unknown $goodsCount 商品总数
  6. * @param unknown $pageLength 每个页面展示页面数
  7. */
  8. public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {
  9. //页面总数
  10. $allPageCount = ceil($goodsCount / $pageLength);
  11. //如果页面总是比长度短,设定页面长度为页面总数
  12. if ($allPageCount <= $pageCountLength) {
  13. $allPageCount = ceil($goodsCount / $pageLength);
  14. }
  15. //总页面数一页展示完
  16. if ($allPageCount <= $pageCountLength) {
  17. for ($i = 0; $i < $allPageCount; $i ++) {
  18. $arr[] = array('page' => $i + 1);
  19. }
  20. return $arr;
  21. }
  22. //前后的长度
  23. $halfLength = floor($pageCountLength / 2);
  24. //因为太小,所以放原来位置,左边
  25. if ($page <= $halfLength) {
  26. $arr = array();
  27. for ($i = 0; $i < $pageCountLength; $i ++) {
  28. $arr[] = array('page' => $i + 1);
  29. }
  30. return $arr;
  31. }
  32. //太大,只取到边缘,超出也只取到边缘
  33. if ($page > $allPageCount - floor($pageCountLength / 2)) {
  34. for ($i = -$pageCountLength; $i < 0; $i ++) {
  35. $arr[] = array('page' => $allPageCount + $i + 1);
  36. }
  37. return $arr;
  38. }
  39. //中间的数,把中间的取出来
  40. for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ++) {
  41. $arr[] = array('page' => $page + $i);
  42. }
  43. return $arr;
  44. }
  45. }

希望本文所述对大家的php程序设计有所帮助。