常用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&amp;&amp;mysql)五
Oct 09 PHP
PHP 引用是个坏习惯
Mar 12 PHP
解析php中curl_multi的应用
Jul 17 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
Dec 02 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
php中in_array函数用法探究
Nov 25 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
php检查页面是否被百度收录
Oct 28 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 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版)
2012/08/21 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
CSS3 简写animation
2012/05/10 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
会计岗位职责
2013/11/08 职场文书
个人租房协议书
2014/04/09 职场文书
安全协议书范本
2014/04/21 职场文书
写给女朋友的保证书
2015/05/09 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript
使用python绘制横竖条形图
2022/04/21 Python
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers