如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

一个非常简单的分页算法,和平常所用的稍稍不一样的就是,当页数过多的时候,可以只显示中间几页,看看思路而已。提起分页,就不得不提laravel的分页,真心历史最简单的就是laravel了。连page参数都不用传递,傻瓜式分页输出。以后再单开一个帖子说说laravel的分页写法。真心好简单啊,妈妈再也不用担心我不会写分页了.....

//最多显示多少个页码
$_pageNum = 5;
//当前页面小于1 则为1
$page = $page < 1 ? 1 : $page;
//当前页大于总页数 则为总页数
$page = $page > $pages ? $pages : $page;
//页数小当前页 则为当前页
$pages = $pages < $page ? $page : $pages;

//计算开始页
$_start = $page - floor($_pageNum / 2);
$_start = $_start < 1 ? 1 : $_start;
//计算结束页
$_end = $page + floor($_pageNum / 2);
$_end = $_end > $pages ? $pages : $_end;

//当前显示的页码个数不够最大页码数,在进行左右调整
$_curPageNum = $_end - $_start + 1;
//左调整
if ($_curPageNum < $_pageNum && $_start > 1) {
    $_start = $_start - ($_pageNum - $_curPageNum);
    $_start = $_start < 1 ? 1 : $_start;
    $_curPageNum = $_end - $_start + 1;
}
//右边调整
if ($_curPageNum < $_pageNum && $_end < $pages) {
    $_end = $_end + ($_pageNum - $_curPageNum);
    $_end = $_end > $pages ? $pages : $_end;
}

$_pageHtml = '<ul class="pagination">';
/* if($_start == 1){
  $_pageHtml .= '<li><a title="第一页">«</a></li>';
  }else{
  $_pageHtml .= '<li><a  title="第一页" href="'.$url.'&page=1">«</a></li>';
  } */
if ($page > 1) {
    $_pageHtml .= '<li><a  title="上一页" href="' . $url . '&page=' . ($page - 1) . '">«</a></li>';
}
for ($i = $_start; $i <= $_end; $i++) {
    if ($i == $page) {
        $_pageHtml .= '<li class="active"><a>' . $i . '</a></li>';
    } else {
        $_pageHtml .= '<li><a href="' . $url . '&page=' . $i . '">' . $i . '</a></li>';
    }
}
/* if($_end == $pages){
  $_pageHtml .= '<li><a title="最后一页">»</a></li>';
  }else{
  $_pageHtml .= '<li><a  title="最后一页" href="'.$url.'&page='.$pages.'">»</a></li>';
  } */
if ($page < $_end) {
    $_pageHtml .= '<li><a  title="下一页" href="' . $url . '&page=' . ($page + 1) . '">»</a></li>';
}
$_pageHtml .= '</ul>';

  【php】秘籍文章入口,仅传授于有缘之人  php

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/php-normal-pagniate.html
上一篇好文:高德地图API如何显示区县轮廓
下一篇好文:enphp2算法加密的php代码的解密思路

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~