PHP 分页函数

  /**
   * 分页处理函数
   * @param  int     $totalInfo   数据总数
   * @param  int     $currentPage 当前页码数
   * @param  int     $perPageInfo 每页显示条数
   * @param  integer $showPage    默认显示页码数
   * @return string               返回需要输出的分页列表
   */
  function pagination($totalInfo, $currentPage, $pageSize, $showPage=6) {
    $pageStr = "";

    // 当总信息数量大于每页显示数量时候
    if ($totalInfo > $pageSize) {
      // 总分页数
      $totalPages = ceil($totalInfo / $pageSize);
      // 对当前也进行容错处理, 如果当前也大于总页数, 当前页就是总也数
      $currentPage = $currentPage > $totalPages ? $totalPages : $currentPage;

      // 默认显示6个分页选项
      $from = max(1,intval($currentPage - $showPage/2));
      $to = $from + $showPage - 1;
      if ($to > $totalPages) {
        $to = $totalPages;
        $from = max(1, $to - $showPage + 1);
      }



      $pageStr .= '<div class="page-nav">';
      $pageStr .= '<ul>';

      // 当当前页大于1的时候, 才会显示上一页和首页
      if($currentPage > 1) {
        $pageStr .= '<li><a href="1">首页</a></li>';
        $pageStr .= "<li><a href='".($currentPage - 1)."'>上一页</a></li>";
      }

      if ($from > 1) {
        $pageStr .= '<li>...</li>';
      }

      for($i=$from; $i<=$to; $i++) {
        if ($i != $currentPage) {
          $pageStr .= "<li><a href='".$i."'>{$i}</a></li>";
        } else {
          $pageStr .= "<li><span class='curr-page'>{$i}</span></li>";
        }
      }

      if ($to < $totalPages) {
        $pageStr .= '<li>...</li>';
      }


      // 当当前页小于总页数的时候, 才会显示下一页和尾页
      if ($currentPage < $totalPages) {
        $pageStr .= "<li><a href='".($currentPage + 1)."'>下一页</a></li>";
        $pageStr .= "<li><a href='".$totalPages."'>尾页</a></li>";
      }

      $pageStr .= '</div>';
      $pageStr .= '</ul>';
    }

    return $pageStr;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值