一、方法类

<?php
/*** 分页类** 调用方式:* $p=new Page(总条数,显示页数,当前页码,每页显示条数,[链接]);* print_r($p->getPages()); //生成一个页码数组(键为页码,值为链接)* echo $p->showPages(1);    //生成一个页码样式(可添加自定义样式)**//*
总条数,需要显示的页数,当前页,每页显示的条数,连接
生成一个一维数组,键为页码 值为连接
返回一个生成好样式的页码(并且可以根据自己需要添加样式)
默认样式 共45条记录,每页显示10条,当前第1/4页 [首页] [上页] [1] [2] [3] .. [下页] [尾页]
*/
namespace app\atl\controller;
use think\Controller;
use think\Exception;class Page extends controller{private $myde_total;          //总记录数private $myde_size;           //一页显示的记录数private $myde_page;           //当前页private $myde_page_count;     //总页数private $myde_i;              //起头页数private $myde_en;             //结尾页数private $myde_url;            //获取当前的url/** $show_pages* 页面显示的格式,显示链接的页数为2*$show_pages+1。* 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页]*/private $show_pages;public function __construct($myde_total = 1,$myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {$this->myde_total = $this->numeric($myde_total);$this->myde_size = $this->numeric($myde_size);$this->myde_page = $this->numeric($myde_page);$this->myde_page_count = ceil($this->myde_total / $this->myde_size);$this->myde_url = $myde_url;if ($this->myde_total < 0)$this->myde_total = 0;if ($this->myde_page < 1)$this->myde_page = 1;if ($this->myde_page_count < 1)$this->myde_page_count = 1;if ($this->myde_page > $this->myde_page_count)$this->myde_page = $this->myde_page_count;$this->limit = ($this->myde_page - 1) * $this->myde_size;$this->myde_i = $this->myde_page - $show_pages;$this->myde_en = $this->myde_page + $show_pages;if ($this->myde_i < 1) {$this->myde_en = $this->myde_en + (1 - $this->myde_i);$this->myde_i = 1;}if ($this->myde_en > $this->myde_page_count) {$this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);$this->myde_en = $this->myde_page_count;}if ($this->myde_i < 1)$this->myde_i = 1;}//检测是否为数字private function numeric($num) {if (strlen($num)) {if (!preg_match("/^[0-9]+$/", $num)) {$num = 1;} else {$num = substr($num, 0, 11);}} else {$num = 1;}return $num;}//地址替换private function page_replace($page) {return str_replace("{page}", $page, $this->myde_url);}//首页private function myde_home() {if ($this->myde_page != 1) {return "<a href='" . $this->page_replace(1) . "' title='首页'>首页</a>";} else {return "<p>首页</p>";}}//上一页private function myde_prev() {if ($this->myde_page != 1) {return "<a href='" . $this->page_replace($this->myde_page - 1) . "' title='上一页'>上一页</a>";} else {return "<p>上一页</p>";}}//下一页private function myde_next() {if ($this->myde_page != $this->myde_page_count) {return "<a href='" . $this->page_replace($this->myde_page + 1) . "' title='下一页'>下一页</a>";} else {return"<p>下一页</p>";}}//尾页private function myde_last() {if ($this->myde_page != $this->myde_page_count) {return "<a href='" . $this->page_replace($this->myde_page_count) . "' title='尾页'>尾页</a>";} else {return "<p>尾页</p>";}}//输出public function myde_write($id = 'page') {$str = "<div id=" . $id . ">";
//        $str.=$this->myde_home();$str.=$this->myde_prev();if ($this->myde_i > 1) {$str.="<p class='pageEllipsis'>...</p>";}for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {if ($i == $this->myde_page) {$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";} else {$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";}}if ($this->myde_en < $this->myde_page_count) {$str.="<p class='pageEllipsis'>...</p>";}$str.=$this->myde_next();
//        $str.=$this->myde_last();
//        $str.="<p class='pageRemark'>共<b>" . $this->myde_page_count .
//            "</b>页<b>" . $this->myde_total . "</b>条数据</p>";$str.="</div>";return $str;}
}
?>

二、样式

#page{display: flex;flex-wrap: wrap;justify-content: center;height:30px;
}
#page a{display:block;float:left;margin-right:10px;padding: 0 12px;height: 30px;border:1px #cccccc solid;background:#fff;text-decoration:none;color:#808080;font-size: 14px;line-height: 30px;
}
#page a:hover{color:#EB5C0D;border:1px #EB5C0D solid;
}
#page a.cur{border:none;background:#EB5C0D;color:#fff;
}
#page p{float:left;padding: 0 12px;font-size:15px;height: 30px;line-height: 30px;color:#bbb;border:1px #ccc solid;background:#fcfcfc;margin-right:8px;}
#page p.pageRemark{border-style:none;background:none;margin-right:0px;color:#666;
}
#page p.pageRemark b{margin: 0 6px;color: #EB5C0D;
}
#page p.pageEllipsis{border-style:none;background:none;padding:4px 0px;color:#808080;
}
.dates li {font-size: 14px;margin:20px 0}
.dates li span{float:right}

三、引用方法

  $page = new \Page('总记录','单页记录','当前分页','链接?page=当前页');$str = "<div id=" . $id . ">";
//        $str.=$this->myde_home();$str.=$this->myde_prev();if ($this->myde_i > 1) {$str.="<p class='pageEllipsis'>...</p>";}for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {if ($i == $this->myde_page) {$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";} else {$str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";}}if ($this->myde_en < $this->myde_page_count) {$str.="<p class='pageEllipsis'>...</p>";}$str.=$this->myde_next();
//        $str.=$this->myde_last();
//        $str.="<p class='pageRemark'>共<b>" . $this->myde_page_count .
//            "</b>页<b>" . $this->myde_total . "</b>条数据</p>";$str.="</div>";return $str;

简单的php分页实现相关推荐

  1. EasyUI之简单实现Datagrid分页(C#)

    EasyUI之简单实现Datagrid分页(C#) 刚刚开始学着用EasyUI,有兴趣的TX可以去http://www.jeasyui.com/看一下,当然很多人都知道,不是什么新鲜的东西: 这两天在 ...

  2. php按数字分页类,PHP简单实现数字分页功能示例

    本文实例讲述了PHP简单实现数字分页功能.分享给大家供大家参考,具体如下: header ( 'Content-Type: text/html; charset=utf-8' ); //分页 $pag ...

  3. 简单的beego分页功能代码

    一个简单的beego分页小插件(源代码在最下面): 支持条件查询 支持参数保留 支持自定义css样式 支持表/视图 支持参数自定义 默认为pno 支持定义生成链接的个数 使用方式: 1)action中 ...

  4. smarty+php+ajax 简单无刷新分页

    简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($ ...

  5. ASP.NET Gridview的简单的Bootstrap分页

    Gridview的仅用CSS的Bootstrap分页 介绍 本文描述了使用bootstrap CSS的.table类的ASP.NET gridview的bootstrap分页实现. 我最近在boots ...

  6. java实现分页打印功能_Java简单高效实现分页功能

    今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的crud接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法 1.utils.java工具类中的方法 /** ...

  7. react ajax 分页,一款简单的react分页组件

    父组件pagination.jsx import React, { Component } from 'react'; import PageComponent from './pageCompone ...

  8. 简单的bean分页输出

    2019独角兽企业重金招聘Python工程师标准>>> public class Page {private int pageSize = 10; //每页显示的记录数private ...

  9. 简单实用的分页存储过程,支持多字段排序

    CREATE PROCEDURE [dbo].[PublicSplitPage_sp] @TableName varchar(8000), --表名 @SqlStr varchar(8000)=nul ...

  10. 简单的JSP分页显示

    1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张 ...

最新文章

  1. Zend Framework数据库操作
  2. 【趣图】测试刚写完的代码...
  3. 浙江大学计算机与机械工程,中国26所“机械工程”大学经调整、合并,浙大、西交、同济升级...
  4. Tech·Ed 2007大会课程内容
  5. Windows 8 系统快捷键热键列表收集
  6. 程序员过关斩将--领导说我的类的职责不单一
  7. mysql 如果存在修改_mysql如存在并发修改可能,一定要注意保证数据一致性
  8. 腐蚀和膨胀(erode and dilate)
  9. java使用derby增删改查_JDBC 笔记3 通过PreparedStatement 对数据库进行增删改查 (转载)...
  10. MYSQL 数据库创建,修改等知识整理
  11. matlab画图点形状,matlab画图点的形状
  12. 如何从Win11系统安装回win10系统?
  13. 找回git误删除的文件
  14. 初学unity(简单场景制作)
  15. 三维地质建模数据处理
  16. 【MATLAB】如何测试电脑运行matlab的性能?
  17. Leetcode 1599. Maximum Profit of Operating a Centennial Wheel (python)
  18. 千篇一律的Python爬虫,大神精心总结的爬虫套路!
  19. 关于root 联想ZUK z2 遇到的一系列问题
  20. 06-软件测试计划及测试说明

热门文章

  1. 基于Springboot的论坛管理系统
  2. SQLHelper.cs
  3. PR字幕模板 12个大气紫色风格PR大屏字幕动态标题PR字幕模板
  4. 美国cs master两年总结以及毕业回国
  5. 乘风聚合图床源码 多接口
  6. FPGA解析B码----连载8(完结篇)
  7. Jdk1.8.0_111安装手册
  8. 用python检查班上同学交作业的情况
  9. 三相三线STATCOM仿真模型。无功电流采用ipiq检测,pwm采用滞环控制。
  10. springboot中maven文件pom.xml的<resource>下的<includes>和<excludes>