<?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. 一种比css_scoped和css_module更优雅的避免css命名冲突小妙招

    css_scoped 与 css_module 我们知道,简单的class名称容易造成css命名重复,比如你定义一个class: <style> .main { float: left; ...

  2. 第八十七篇:Vue动态切换组件的展示和隐藏

    好家伙, 1.什么是动态组件? 动态组件指的是动态切换组件的限制与隐藏 2.如何实现动态组件渲染 vue提供了一个内置的<component>组件,专门用来实现动态组件的渲染. 可以将其看 ...

  3. SpringMVC 07: WEB-INF下的资源访问 + SpringMVC拦截器

    WBE-INF目录下的资源访问 项目配置和Spring博客集(指SpringMVC 02)中配置一样 出于对网站资源的安全性保护,放在WBE-INF目录下的资源不可以被外部直接访问 在WEB-INF/ ...

  4. spark 写入数据到Geomesa(Hbase)

    package com.grady.geomesa import org.apache.spark.sql.jts.PointUDT import org.apache.spark.sql.types ...

  5. 【java8新特性】01:函数式编程及Lambda入门

    我们首先需要先了解什么是函数式编程.函数式编程是一种结构化编程范式.类似于数学函数.它关注的重点在于数据操作.或者说它所提倡的思想是做什么,而不是如何去做. 自Jdk8中开始.它也支持函数式编程.函数 ...

  6. 修复 Elasticsearch 集群的常见错误和问题

    文章转载自:https://mp.weixin.qq.com/s/8nWV5b8bJyTLqSv62JdcAw 第一篇:Elasticsearch 磁盘使用率超过警戒水位线 从磁盘常见错误说下去 当客 ...

  7. 修改Windows10 命令终端cmd的编码为UTF-8 && IDEA控制台输出中文乱码

    临时修改 进入cmd窗口后,直接执行 chcp 65001 永久修改 在运行中输入regedit,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Pro ...

  8. MySQL之pt-query-digest分析慢查询日志的详情介绍

    一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...

  9. SQL的事务

    一.基本概念 事务是数据库区别于文件系统的重要特性之一,当有了事务,就可以让数据库始终保持一致性,同时可以通过事务的机制恢复到某个时间点,保证了提交到数据库的修改不会因为系统崩溃而丢失: 事务只是一个 ...

  10. Django 出现 frame because it set X-Frame-Options to deny 错误

    一.背景 使用django3 进行开发时,由于项目前端页面使用iframe框架,浏览器错误提示信息如下 Refused to display 'http://127.0.0.1:8000/' in a ...