php简单分页类实现方法

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

  

复制代码 代码如下:
class PageModel {

  /**

  * 获取分页数组

  * @param unknown $page 当前页面数

  * @param unknown $goodsCount 商品总数

  * @param unknown $pageLength 每个页面展示页面数

  */

  public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {

  //页面总数

  $allPageCount = ceil($goodsCount / $pageLength);

  //如果页面总是比长度短,设定页面长度为页面总数

  if ($allPageCount <= $pageCountLength) {

  $allPageCount = ceil($goodsCount / $pageLength);

  }

  //总页面数一页展示完

  if ($allPageCount <= $pageCountLength) {

  for ($i = 0; $i < $allPageCount; $i ++) {

  $arr[] = array('page' => $i + 1);

  }

  return $arr;

  }

  //前后的长度

  $halfLength = floor($pageCountLength / 2);

  //因为太小,所以放原来位置,左边

  if ($page <= $halfLength) {

  $arr = array();

  for ($i = 0; $i < $pageCountLength; $i ++) {

  $arr[] = array('page' => $i + 1);

  }

  return $arr;

  }

  //太大,只取到边缘,超出也只取到边缘

  if ($page > $allPageCount - floor($pageCountLength / 2)) {

  for ($i = -$pageCountLength; $i < 0; $i ++) {

  $arr[] = array('page' => $allPageCount + $i + 1);

  }

  return $arr;

  }

  //中间的数,把中间的取出来

  for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ++) {

  $arr[] = array('page' => $page + $i);

  }

  return $arr;

  }

  }

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