php tool pagination,php实现分页工具类分享

代码:

/**

* 把中间的看成一个可以滑动的固定长度的尺子

*

* 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,

* 然后$this->_totalPages就是一个给定长度的木块,尺子在这个

* 木块上滑动。情况两种:

* 1. 尺子长度大于木块长度,那么就直接输出所有的页码;

* 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页

* 数的起始点——$start, $end;

* @Access protected

* @Return void

* @Exception none

*/

protected function _getShowPageNumber()

{

$pageHtml = '';

//找到$start点

if($this->_curPage - 2 > 1) {

$start = $this->_curPage - 2;

} else {

$start = 1;

}

//找到$end 点

$end = $start + $this->_totalShowPages;

if($end >= $this->_totalPages) {

$end = $this->_totalPages;

$start = $end - $this->_totalShowPages; //保证页面显示的长度为$this->_totalShowPages

}

if($start != 1) {

$pageHtml .= $this->_getPageHtml(1);

$preMore = $this->_curPage - $this->_totalShowPages;

if($preMore < 1) {

$preMore = 1;

}

$pageHtml .= $this->_getMorePageHtml($preMore);

}

for($page = $start; $page < $end; $page ++) {

$pageHtml .= $this->_getPageHtml($page);

}

if($end != $this->_totalPages) {

$pageHtml .= $this->_getMorePageHtml($end);

}

$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);

return $pageHtml;

}

第一种老想法的代码实现:

/**

* 一步步的来

*

* @desc

*

* @Access protected

* @Return void

* @Exception none

*/

protected function _getShowPageNumberTwo()

{

if($this->_curPage < $this->_totalShowPages) {

for($page = 1; $page < $this->_totalShowPages; $page ++) {

$pageHtml .= $this->_getPageHtml($page);

}

$pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);

$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);

} else {

$pageHtml .= $this->_getNormalPageHtml(1);

if($this->_curPage == $this->_totalShowPages) {

$pageHtml .= $this->_getMorePageHtml(1);

} else {

$pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);

}

if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {

for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {

$pageHtml .= $this->_getPageHtml($page);

}

} else {

$start = $this->_curPage - 2;

$end = $this->_curPage + $this->_totalShowPages - 2;

for($page = $start; $page < $end; $page ++) {

$pageHtml .= $this->_getPageHtml($page);

}

$pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);

$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);

}

}

return $pageHtml;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js题集15

1.CORS和JSONP区别&#xff1f; 2.如何规避同源策略&#xff1f; eg&#xff1a;访问iframe 3.如何实现 一个算法的不变的部分&#xff0c;并将可变的行为留给子类来实现 简单写一个demo转载于:https://www.cnblogs.com/tong24/p/7305772.html

5G 智慧城市安全参考架构概述

来源&#xff1a;安全内参2020年5月12日&#xff0c;IMT-2020(5G)推进组安全工作组发布了《5G智慧城市安全需求与架构白皮书》&#xff0c;本文节选自该白皮书&#xff0c;主要概述了5G 智慧城市安全参考框架。该框架是参考GB/T 37971-2019《信息安全技术 智慧城市安全体系框架…

vue 学习笔记—路由篇

一.关于三种路由 动态路由 就是path:good/:ops 这种 用 $route.params接收  <router-link>是用来跳转 <router-view></router-view>用来盛放内容的容易 在routes 里面进行配置 [{ path:,name:,component:}] path为router-link的路径 component为 …

MEMS传感器的未来在哪?

来源&#xff1a;MEMS技术1 引言陀螺是用于测量载体相对惯性空间旋转运动中运动角速度和角度的传感器&#xff0c;是运动控制、姿态监测、导航制导等领域的核心器件&#xff0c;在工业和国防领域具有广泛且重要的应用。陀螺从原理上可分为基于高速旋转刚体的定轴性与进动性工作…

php获取控制器返回,thinkphp获取所有控制器的方法

protected function getController($module){if(empty($module)) return null;$module_path APP_PATH . / . $module . /Controller/; //控制器路径if(!is_dir($module_path)) return null;$module_path . /*.class.php;$ary_files glob($module_path);foreach ($ary_files a…

Jquery一些笔记

【1】|| 是逻辑 || 是逻辑或&#xff0c;如果前一个表达式为true&#xff0c;就可以直接判定结果为true&#xff0c;从而不再执行后一个表达式&#xff1b;只有当前一个表达式为false时&#xff0c;才执行后一个表达式。 javascript中&#xff0c;null&#xff0c;0&#xff0c…

黑科技:绕过眼睛植入幻觉,科学家成功在盲人脑海中呈现指定图像!

来源 | 学术头条&#xff08;ID:SciTouTiao&#xff09;头图 | CSDN付费下载自视觉中国对于全球 5000 多万盲人来说&#xff0c;重见光明是一个遥不可及的梦想。而为了与盲人朋友进行交互&#xff0c;我们发明了盲文&#xff0c;用各种凸起的字符集合来表达各种意思。但这种通过…

ssrf漏洞 php,DokuWiki fetch.php SSRF漏洞与tok安全验证绕过分析

作者&#xff1a;baolongniu of Tencent Security Platform Department关于DokuWikiDokuWiki是一个开源wiki引擎程序&#xff0c;运行于PHP环境下。DokuWiki程序小巧而功能强大、灵活&#xff0c;适合中小团队和个人网站知识库的管理。漏洞简介DokuWiki最新 2016-06-26a版本存在…

[Codevs] 1014 棋盘染色

1049 棋盘染色 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description有一个55的棋盘&#xff0c;上面有一些格子被染成了黑色&#xff0c;其他的格子都是白色&#xff0c;你的任务的对棋盘一些格子进行染色&#xff0c;使得所有的黑色格子能连成一块&…

专访王田苗:机器人是“刚需”,市场正处于逆周期增长

来源&#xff1a;亿欧【本文三大核心点】一、未来老龄化社会的到来与新生代快节奏生活工作的方式让智能机器人处于长期刚性需求。二、人工智能算法、软体材料、5G互联网开放软件平台、多机与人机协作、云服务租赁共享模式等技术给新一代机器人发展带来了大量的产业机遇。三、中…

php算法入门,a011.PHP实战:加密解密,简单算法入门

原标题&#xff1a;a011.PHP实战&#xff1a;加密解密&#xff0c;简单算法入门在PHP编程中&#xff0c;很多时候我们会遇到传递信息的问题&#xff0c;而传递过程中为了安全&#xff0c;我们肯定是要进行加密和解密的&#xff0c;这里&#xff0c;我们来说一说使用PHP怎么进行…

tomcat的安装及配置

1.首先进tomcat官网下载zip压缩文件&#xff1a;http://tomcat.apache.org/download-90.cgi 2.解压缩到指定文件压&#xff08;后面配置环境变量会用到&#xff09; 3.配置环境变量 4.打开解压后文件中的bin文件夹&#xff0c;运行startup.bat 如上图结果则配置成功 5.打开浏览…

微机原理1答案

一、选择题 1.8086CPU的字长是()位。 A. 32 B. 128 C. 64 D. 16 2 间接寻址方式中,操作数在()中。 A. 通用寄存器 B. 内存单元 C. 程序计数器 D.堆栈 3.在循环指令LOOP和串操作指令中,用作计数器的寄存器是() A. AX B. BX C. CX D. DX 4.8086/8088 的最小模式中,CPU 通…

好文|奔向宇宙,揭开太空机器人的神秘面纱

来源&#xff1a;千慧知识产权空间机器人是在太空中执行空间站建造与运营、卫星组装与服务、行星表面探测与实验等任务的一类特种机器人&#xff0c;是世界航天大国竞相发展的热点领域。当前&#xff0c;空间机器人已经在国际空间站、飞船、卫星等飞行器的在轨维护、空间装配、…

python的底层实现,Python封装底层实现原理详解(通俗易懂)

事实上&#xff0c;Python 封装特性的实现纯属“投机取巧”&#xff0c;之所以类对象无法直接调用以双下划线开头命名的类属性和类方法&#xff0c;是因为其底层实现时&#xff0c;Python 偷偷改变了它们的名称。前面章节中&#xff0c;我们定义了一个 CLanguage 类&#xff0c…

bzoj1705[Usaco2007 Nov]Telephone Wire 架设电话线(dp优化)

1705: [Usaco2007 Nov]Telephone Wire 架设电话线 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 441 Solved: 247[Submit][Status][Discuss]Description 最近&#xff0c;Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是&#xff0c;她们要求FJ把那些老旧的…

关于6G,这些你应该了解

来源&#xff1a;内容来自公众号中国电子报——赛迪智库前 言当前&#xff0c;全球新一轮科技革命和产业变革正在加速演进&#xff0c;人工智能&#xff08;AI&#xff09;、VR/AR、三维&#xff08;3D&#xff09;媒体和物联网等新一代信息通信技术的广泛应用产生了巨大的传输…

php显示动态通告信息方式,Joomla PHP通知,警告和错误指南

网站不可避免地会出现问题。无论您使用的是Joomla还是其他产品&#xff0c;都需要发现并修复问题。Joomla使用PHP&#xff0c;当PHP有问题时&#xff0c;它将向您报告。但是&#xff0c;这些错误通常会出现在您的网站上&#xff0c;并且对访问者可见&#xff1a;在本教程中&…

Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...

来源&#xff1a;AI科技评论近日&#xff0c;Facebook AI和Cornell Tech的研究人员近期发表研究论文预览文稿&#xff0c;声称近十三年深度度量学习&#xff08;deep metric learning&#xff09; 领域的目前研究进展和十三年前的基线方法(Contrastive, Triplet) 比较并无实质提…

赛码网算法: 军训队列( python实现 )

军训队列 题目描述某大学开学进行军训队列训练&#xff0c;将学生从一开始按顺序依次编号&#xff0c;并排成一行横队&#xff0c;训练的规则如下&#xff1a;从头开始一至二报数&#xff0c;凡报到二的出列剩下的依次向前靠拢&#xff0c;再从头开始…