常用PHP封装分页工具类


Posted in PHP onJanuary 14, 2017

分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可。),这样既省时又省力还赚‘工分'。

我封的这个分页工具类还比较完整,有首页,上一页,下一页,末页和可选数量的页码数量(也就是当页面很多时,只显示依据参数传入的个数),还可以依据需求选择是否使用下拉跳转页面功能。

<?php
/**
 * 分页工具类
 */

class page{

  /**
   * 返回分页所需字符串
   * @param $pageNum int 显示的页码
   * @param $pageCount int 总的页码数 
   * @param $url string 当前页码路径
   * @param $Count string 页码列表里显示的个数
   * @param $selected bool 是否开启下拉框选择功能。默认不开启
   * return $strpage string 分页字符串
   */
  function showPage($pageNum,$pageCount,$url,$Count = 5,$selected = false){
    $pageMaxVal = $Count - 1;// 页码到达最大时,页码列表里第一个页码与最大页码的差
    $pageMiddleVal = ceil($Count / 2);// 依据需要显示页码个数得到的中间值
    $pageMiddleCha = floor($Count / 2);// 依据需要显示页码个数得到的当前页码与第一个页码的差

    // 判断url是否已经存在?
    if(!strpos($url, '?')){ // 未存在?
      $url .= '?';
    }else{
      $url .= '&';
    }

    // 首页
    $strpage = "<a href='{$url}num=1'>首页</a>";

    // 上一页
    $preNum = $pageNum > 1 ? $pageNum - 1 : 1;

    // 当页码为第一页时取消上一页按钮的功能
    $strpage .= $pageNum == 1 ? "<a class='unshow'>上一页</a>" : "<a href='{$url}num={$preNum}'>上一页</a>";

    // 显示的页码列表中的第一个页码
    $startPage = $pageNum > $pageMiddleVal ? $pageNum - $pageMiddleCha : 1;
    // 起始页码最大值 = 总页数 - 4
    if($pageCount - $pageMaxVal > 0 && $startPage > $pageCount - $pageMaxVal){
      $startPage = $pageCount - $pageMaxVal;
    }

    // 显示的页码列表中的最后一个页码
    $endPage = $startPage<($pageCount - $pageMaxVal) ? $startPage + $pageMaxVal : $pageCount;

    // 中间数字页码
    for($i=$startPage;$i<=$endPage;$i++){
      if($i == $pageNum){
        $strpage .= "<span>$i</span>";
      }else{
        $strpage .= "<a href='{$url}num=$i'>$i</a>";
      }
    }

    // 下一页
    $nextNum = $pageNum < $pageCount ? $pageNum + 1 : $pageCount;

    // 当页码为最后一页时取消下一页按钮的功能
    $strpage .= $pageNum == $pageCount ? "<a class='unshow'>下一页</a>" : "<a href='{$url}num={$nextNum}'>下一页</a>";

    // 末页
    $strpage .= "<a href='{$url}num={$pageCount}'>末页</a>";

    // 总页数
    $strpage .= "总页数:{$pageCount}  ";

    // 判断是否是否选择页码功能
    if($selected){ // 选择了
      $strpage .= "当前页码:<select onchange=\"location.href='{$url}num=' + this.value \">";
        for($i = 1; $i <= $pageCount;$i++){
          if($i == $pageNum){
            $strpage .= "<option value='$i' selected='selected'>$i</option>";
          }else{
            $strpage .= "<option value='$i'>$i</option>";
          }
        }
        
      $strpage .= "</select>";
    }

    return $strpage;
  }

}

接下来应该会PO完MySQL剩余部分知识吧,希望大家继续关注。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php中在PDO中使用事务(Transaction)
May 14 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
php计算一个文件大小的方法
Mar 30 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
详解thinkphp中的volist标签
Jan 15 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 #PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 #PHP
php 解决扫描二维码下载跳转问题
Jan 13 #PHP
PHP使用递归算法无限遍历数组示例
Jan 13 #PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 #PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 #PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 #PHP
You might like
PHP 编程的 5个良好习惯
2009/02/20 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
职高毕业生自我鉴定
2013/10/21 职场文书
节水口号标语
2014/06/19 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
公司2014年度工作总结
2014/12/10 职场文书
个人年终总结怎么写
2015/03/09 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL