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 相关文章推荐
3.从实例开始
Oct 09 PHP
生成php程序的php代码
Apr 07 PHP
php win下Socket方式发邮件类
Aug 21 PHP
php cli 小技巧
Jun 03 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php数组冒泡排序算法实例
May 06 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
thinkphp实现附件上传功能
May 26 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 PHP
laravel框架创建授权策略实例分析
Nov 22 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
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
php中adodbzip类实例
2014/12/08 PHP
php给数组赋值的实例方法
2019/09/26 PHP
学习面向对象之面向对象的术语
2010/11/30 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
Python中除法使用的注意事项
2014/08/21 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Python netmiko模块的使用
2020/02/14 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
python归并排序算法过程实例讲解
2020/11/04 Python
打架检讨书400字
2014/01/17 职场文书
矿泉水广告词
2014/03/20 职场文书
夏季药店促销方案
2014/08/22 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
工程服务质量承诺书
2015/04/29 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis