php分页示例分享


Posted in PHP onApril 30, 2014
//分页函数 第一页: url/1 第二页: url/2
function pages($url, $totalnum, $page, $pagesize = 20) {
    $urladd = '';
    $url .= '/';    $totalpage = ceil($totalnum / $pagesize);
    if($totalpage < 2) return '';
    $page = min($totalpage, $page);
    $shownum = 5;   // 显示多少个页 * 2
    $start = max(1, $page - $shownum);
    $end = min($totalpage, $page + $shownum);
    // 不足 $shownum,补全左右两侧
    $right = $page + $shownum - $totalpage;
    $right > 0 && $start = max(1, $start -= $right);
    $left = $page - $shownum;
    $left < 0 && $end = min($totalpage, $end -= $left);
    $s = '';
    $page != 1 && $s .= '<a href="'.$url.($page - 1).$urladd.'">◀</a>';
    if($start > 1) $s .= '<a href="'.$url.'1'.$urladd.'">1 '.($start > 2 ? '... ' : '').'</a>';
    for($i=$start; $i<=$end; $i++) {
        if($i == $page) {
            $s .= '<a href="'.$url.$i.$urladd.'" class="checked">'.$i.'</a>';// checked
        } else {
            $s .= '<a href="'.$url.$i.$urladd.'">'.$i.'</a>';
        }
    }
    if($end != $totalpage) $s .= '<a href="'.$url.$totalpage.$urladd.'">'.($totalpage - $end > 1 ? '... ' : '').$totalpage.'</a>';
    $page != $totalpage && $s .= '<a href="'.$url.($page + 1).$urladd.'">▶</a>';
    return $s;
}
<br>
function mid($n, $min, $max) {
    if($n < $min) return $min;
    if($n > $max) return $max;
    return $n;
}
function page($page, $n, $pagesize) {
    $total = ceil($n / $pagesize);
    $total < 1 AND $total = 1;
    return mid($page, 1, $total);
}

后端部分,我们几句就可以搞定。

$pagesize = 20;    //每页显示多少用户
$n = user_count();      //总用户数
$page = page($page, $n, $pagesize);  //当前页数
$userlist = user_find($page, $pagesize);  //查找出当前页的用户
//html部分,分页效果,直接渲染到页面即可
$pagehtml = pages(url前缀, $n, $page, $pagesize);
PHP 相关文章推荐
随机广告显示(PHP函数)
Oct 09 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 PHP
php目录拷贝实现方法
Jul 10 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
微信支付扫码支付php版
Jul 22 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
yii框架配置默认controller和action示例
Apr 30 #PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 #PHP
yii框架builder、update、delete使用方法
Apr 30 #PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 #PHP
php+js iframe实现上传头像界面无跳转
Apr 29 #PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 #PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 #PHP
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
对numpy中轴与维度的理解
2018/04/18 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
学习python可以干什么
2019/02/26 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
师范生自我鉴定
2014/03/20 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
道德模范事迹材料
2014/12/20 职场文书
就业推荐表导师评语
2014/12/31 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript