PHP封装的完整分页类示例


Posted in PHP onAugust 21, 2018

本文实例讲述了PHP封装的完整分页类。分享给大家供大家参考,具体如下:

<?php 
class pageclass{
  private $total;   //总记录
  private $pagesize;   //每页显示多少条
  private $limit;    //limit
  private $page;    //当前页
  private $pagenum;  //总页码
  private $url;    //地址
  public function __construct($_total,$_pagesize,$page){
    $this->total = $_total ? $_total :1 ;  //总条数
    $this->pagesize = $_pagesize;      //每页显示多少条
    $this->page = $page;          //当前页码
    $this->pagenum = ceil($this->total / $this->pagesize);  //总页码
    $this->limit = "limit ".($this->page-1)*$this->pagesize.",".$this->pagesize;  //分页语句
    $this->url = $this->setUrl();  //地址
  }
  //分页语句
  public function limit(){
    return $this->limit;
  }
  //当前的url地址
  public function setUrl(){
    $server = $_SERVER['REQUEST_URI'];
    $im = explode('/',$server);
    if(empty($_SERVER['PATH_INFO'])){
      $array = array_splice($im,2,0,array('2'=>'index.php'));
    }
    $controller = $im[3];
    $action = $im[4];
    if(empty($_SERVER['PATH_INFO'])){
      $servers = "http://".$_SERVER['HTTP_HOST']."/".$im[1]."/".$controller."/".$action."/";
    }else{
      $servers = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."/".$controller."/".$action."/";
    }
    return $servers;
    //return $im;
  }
  //首页
  public function first(){
    //return $this->page;
    if($this->page > 1){
      return "<a href='".$this->url."page/1'>首页</a>";
    }
  }
  //上一页
  public function prev(){
    if($this->page==1){
      $page = 1;
    }else{
      $page = $this->page-1;
    }
    if($this->page > 1){
      return "<a href='".$this->url."page/".$page."'>上一页</a>";
    }else{
      return "<span class='disabled'>上一页</span>";
    }
  }
  //下一页
  public function next(){
    $page = $this->page+1;
    if($this->page < $this->pagenum){
      if(empty($this->page)){
        $pages = $this->page+2;
        return "<a href='".$this->url."page/".$pages."'>下一页</a>";
      }else{
        return "<a href='".$this->url."page/".$page."'>下一页</a>";
      }
    }else{
      return "<span class='disabled'>下一页</span>";
    }
  }
  //尾页
  public function last(){
    if($this->page < $this->pagenum){
      return "<a href='".$this->url."page/".$this->pagenum."'>尾页</a>";
    }
  }
  //分页
  public function showpage(){
    $page_ = "";
    $page_ .= $this->first();
    $page_ .= " ".$this->prev();
    $page_ .= " ".$this->next();
    $page_ .= " ".$this->last();
    return $page_;
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
简化php模板页面中分页代码的解析
Feb 06 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
php获取远程文件内容的函数
Nov 02 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP数组访问常用方法解析
Sep 05 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 #PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 #PHP
PHP依赖注入原理与用法分析
Aug 21 #PHP
PHP 二维array转换json的实例讲解
Aug 21 #PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 #PHP
php 将json格式数据转换成数组的方法
Aug 21 #PHP
php正确输出json数据的实例讲解
Aug 21 #PHP
You might like
header跳转和include包含问题详解
2012/09/08 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
利用python将图片转换成excel文档格式
2017/12/30 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
详解Python字符串切片
2019/05/20 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
pycharm永久激活超详细教程
2020/10/29 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
好的自荐信的要求
2013/10/30 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
Golang并发操作中常见的读写锁详析
2021/08/30 Golang