<?php
class Paging
{
private $totalStrip; //总条数
private $pageStrip; //每页条数
private $totalPages; //总页数
private $url; //当前页面的url
private $nowPage; //当前的页码
private $aroundPage; //当前页左右条数
public function __construct($totalStrip,$pageStrip,$aroundPage)
{
$this->totalStrip = $totalStrip; //总条数
$this->pageStrip = $pageStrip??5; //每页条数
$this->totalPages = $this->getTotalPages();//总页数
$this->url = $this->getUrl(); //当前页面的url
$this->nowPage = $this->getNowPage(); //当前的页码
$this->aroundPage = $aroundPage??2; //当前页左右条数
}
//总页数
private function getTotalPages()
{
return ceil($this->totalStrip/$this->pageStrip);
}
//当前页面的url
private function getUrl()
{
return $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
}
//当前的页码
private function getNowPage()
{
return isset($_GET['page'])?$_GET['page']:1;
}
//首页
private function firstPage()
{
return "<a href='{$this->url}?page=1'>首页</a>";
}
//上一页
private function prevPage()
{
$prevPage = $this->nowPage - 1;
return "<a href='{$this->url}?page={$prevPage}'>上一页</a>";
}
//当前页之前
private function leftPage()
{
$str = '';
for($i=$this->aroundPage; $i >= 1; $i--){
$Page = $this->nowPage-$i;
if($Page > 0){
$str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
} }
return $str;
}
//当前页
private function toNowPage()
{
return "<a>$this->nowPage</a>";
}
//当前页之后
private function rightPage()
{
$str = '';
for($i=1; $i <= $this->aroundPage; $i++){
$Page = $this->nowPage+$i;
if($Page < $this->totalPages) {
$str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
}
}
return $str;
}
//下一页
private function nextPage()
{
$nextPage = $this->nowPage + 1;
return "<a href='{$this->url}?page={$nextPage}'>下一页</a>";
}
//尾页
private function lastPage()
{
return "<a href='{$this->url}?page=$this->totalPages'>尾页</a>";
}
public function show()
{
$str = "";
if($this->nowPage > 1){
$str .= $this->firstPage();
$str .= $this->prevPage();
$str .= $this->leftPage();
} $str .= $this->toNowPage();
if($this->nowPage < $this->totalPages){
$str .= $this->rightPage();
$str .= $this->nextPage();
$str .= $this->lastPage();
} return $str;
}
}
//$a = new Paging(20,3,2);
//echo $a->show();

  

php自定义分页类的更多相关文章

  1. Django 自定义分页类

    分页类代码: class Page(object): ''' 自定义分页类 可以实现Django ORM数据的的分页展示 输出HTML代码: 使用说明: from utils import mypag ...

  2. thinkphp自定义分页类

    先来看下这个分页的样式,没写css,确实丑 什么时候写样式再来上传下css吧...... 就是多一个页面跳转功能 先把这个代码贴一下 <?php namespace Component; cla ...

  3. PHP24 自定义分页类

    分页类的定义 <?php /** * Class MyPage 分页类 * @package core */ class MyPage { private $totalCount; //数据表中 ...

  4. php : 自定义分页类

    Page.class.php : <?php namespace Tools; class Page { private $total; //数据表中总记录数 private $listRows ...

  5. python 全栈开发,Day115(urlencode,批量操作,快速搜索,保留原搜索条件,自定义分页,拆分代码)

    今日内容前戏 静态字段和字段 先来看下面一段代码 class Foo: x = 1 # 类变量.静态字段.静态属性 def __init__(self): y = 6 # 实例变量.字段.对象属性 # ...

  6. python---django中自带分页类使用

    请先看在学习tornado时,写的自定义分页类:思路一致: python---自定义分页类 1.基础使用: 后台数据获取: from django.core.paginator import Pagi ...

  7. [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)

    简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...

  8. 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字

    在做网站没用 JS UI控件时 很实用 用法: var ps=new PageString(); /*可选参数*/ ps.SetIsEnglish = true;// 是否是英文 (默认:false) ...

  9. TP5 分页类,自定义样式

    结合X-admin 后台框架 在做项目,为了保持分页风格的一致,所以需要自定义 一个分页类. 一.在项目的 extend 目录,创建 cus 目录 二.创建 Page 分页类,代码如下 <?ph ...

  10. ThinkPHP3验证码、文件上传、缩略图、分页(自定义工具类、session和cookie)

    验证码 TP框架中自带了验证码类 位置:Think/verify.class.php 在LoginController控制器中创建生存验证码的方法 login.html登陆模板中 在LoginCont ...

随机推荐

  1. Java基础(标识符,数据类型,数据转换,变量)

    注释 Java中的注释有3种: 单行注释 // 多行注释 /**/ 文档注释 /***/ 注释不会被执行,是给我们写代码的人看的 书写注释是一个非常好的习惯 标识符 Java所有的组成部分都需要名字, ...

  2. 连接FastDFS出现超时问题的解决办法

    1.使用Java语言写的web项目,jeecg框架连接FastDFS,需要修改的信息如下: # WEB-INF/classes/fdfs_client.conf connect_timeout=300 ...

  3. 使用growpart扩容CentOS虚拟机磁盘

    说明 一块磁盘,比如有130G,但是只有100G拿来用了,安装俩分区,一个是swap,另一个是根分区/,根分区采用的是LVM逻辑卷管理. 现在要做的是把剩余的这空闲30G分配给根分区使用 这个并不是新 ...

  4. while循环控制

    基本语法 例(输出五句hello): int i = 1; //循环变量初始化 while(i<=5){ //循环条件 printf("\n hello!"); //循环语句 ...

  5. NSIS查找文本中是否包含某个字串

    !include "textfunc.nsh"!include "logiclib.nsh"OutFile "find.exe"#文本文件a ...

  6. 学习记录-Python的局部变量和全局变量

    目录 1 定义 2 作用域的重要性 2.1 全局作用域中的代码不能使用任何局部变量 2.2 局部作用域中的代码可以访问全局变量 2.3 不同局部作用域中的变量不能相互调用 2.4 在不同的作用域中,可 ...

  7. 关于aws-Lambda的cron周期性计划任务-表达式的定义方式

    关于aws-Lambda的cron周期性定时任务的定义方式,与其他系统或者语言可能略有差异 区别之一,就是Lambda是6个字段的, (分,时,日,月,周,年),多了一个年份字段,各字段之间使用空格隔 ...

  8. JS前端防止F12扒取源码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作

    文章目录 1.实现的效果 2.前端代码 3.后端controller代码 4.servie层代码 5.serviceImpl层代码 6.mapper层代码 7.xml中的sql语句 8.遇到的问题 8 ...

  10. 论文解读(GLA)《Label-invariant Augmentation for Semi-Supervised Graph Classification》

    论文信息 论文标题:Label-invariant Augmentation for Semi-Supervised Graph Classification论文作者:Han Yue, Chunhui ...