热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP生成分页下标生成例子-PHP源码

分页对于做开发的朋友来讲肯定是非常的有用了,今天我们一起来看一篇关于PHP生成分页下标生成例子,希望文章能够帮助到各位朋友。
分页对于做开发的朋友来讲肯定是非常的有用了,今天我们一起来看一篇关于PHP生成分页下标生成例子 ,希望文章能够帮助到各位朋友。

例子一

网页的分页选择效果直接影响用户的使用体验。类似功能的方法有很多,我在这里写的方法主要是的优势在于前后端分离,可以自己定义长度和分页的行数。


测试图例:

11111


效果图:
截图1453701874

例子

/**

*

* @param $page 页码(1至正无穷)

* @param $num 数据中多上行为一页

* @param $rows 数据的总行数

* @param $length 下标的最大长度

* @return array

*/

public function PageDate($page, $num , $rows , $length){

//初始化数据

$MaxPage = 0; //最大页码

$MinPage = 0; //最小页码

$ServerPage = 0; //下拉框中显示的页码

$PageData = array(); //全部的页码集合(用户下拉框选择)

$PageShowData = array(); //用于显示下标的页码集合

$page = intval($page);



if($rows == 0){

return $data = array(

'page' => $page,

'MaxPage' => $MaxPage,

'MinPage' => $MinPage,

'ServerPage' => $ServerPage,

'PageData' => $PageData,

'PageShowData' => $PageShowData

);

}



//得到最大分页和最小分页

$MaxPage = intval($rows / $num);

$double = $rows % $num;

if($double > 0.000000001)

{

$MaxPage += 1;

}

$MinPage = 1;

$ServerPage = 1;

//得到页码的全部项目

for($i = 1; $i <= $MaxPage; $i++ ){

$PageData[$i] = $i;

}

//对页码进行正确性改正

if($page <$MinPage){

$page = 1;

}



if($page > $MaxPage){

$page = 1;

}

/*生成显示的页码标签*/

//生成左侧的代码快

if($page == $MinPage){

$PageShowData[1] = $page;

}

if($page > $MinPage){

$PageShowData[1] = $MinPage;

// $PageShowData[2] = $page - 1; // <<

$PageShowData[2] = '<<'; // <<

if($page -2 > $MinPage ){

$PageShowData[3] = $page - 2;

$PageShowData[4] = $page - 1;

}elseif($page -2 == $MinPage){

$PageShowData[3] = $page - 1;

}

//确定选中的页码代码快

$PageShowData[count($PageShowData) + 1] = $page;

}

$COUNT = count($PageShowData) + 1;

//生成右侧的代码块

if($page == $MaxPage){

return $data = array(

'page' => $page,

'MaxPage' => $MaxPage,

'MinPage' => $MinPage,

'ServerPage' => $ServerPage,

'PageData' => $PageData,

'PageShowData' => $PageShowData

);

}

if($page <$MaxPage) {

if($MaxPage - $page >= 2){

$j = 1;

for($i = $COUNT; $i <= $length ; $i++){

$PageShowData[$i] = $page + $j;

$j ++;
if($PageShowData[$i] == $MaxPage -1){
break;
}
}

}



$COUNT = count($PageShowData) + 1;

// $PageShowData[$COUNT] = $page + 1; //>>

$PageShowData[$COUNT] = '>>';

$PageShowData[$COUNT + 1] = $MaxPage;



//得到选中的参数

$ServerPage = $PageShowData[$COUNT-1] + 1;

if($ServerPage > $MaxPage){

$ServerPage = 1;

}



return $data = array(

'page' => $page,

'MaxPage' => $MaxPage,

'MinPage' => $MinPage,

'ServerPage' => $ServerPage,

'PageData' => $PageData,

'PageShowData' => $PageShowData

);

}

}

例子二

这样在某些情况下会严重影响页面的布局,而且文章页面过多全部显示出来的话 ,也会影响用户体验,因此这篇教程围绕dede分页数量无法控制的问题,以修改{dede:pagebreak/}标签为主进行讲解。

情况如下:


dede系统的pagebreak文章页面分页数量控制方法 - 第1张  | 前端开拓者
这是分了15页,假如更多呢,不感想象,自己辛苦花钱做出来的模板就完全走样了!

改后效果:

1
dede系统的pagebreak文章页面分页数量控制方法 - 第2张  | 前端开拓者

2
dede系统的pagebreak文章页面分页数量控制方法 - 第3张  | 前端开拓者

3
dede系统的pagebreak文章页面分页数量控制方法 - 第4张  | 前端开拓者

修改方法:

在include/arc.archives.class.php这个类,这个主是来解析文章内容的类
找到

function GetPagebreak($totalPage,$nowPage,$aid)

这是一个静态分页解析的一个方法,在这个方法里找到:for($i=1;$i<=$totalPage$i++)

在这个循环前面加上 :

if($totalPage>=8){//这个是在分页数量大于的情况下执行下面的语句
$totallist=7+$nowPage;//这里是要显示几页,如果是10页就写9
if($totallist>$totalPage){
$totallist=$totalPage;
}
$d=$nowPage;
$dqys=$totallist-($d-1);
if($dqys<8){
$d=$totalPage-7;
}
}else{
$totallist=$totalPage;
$d=1;
}

然后再改
for($i=1;$i<=$totalPage;$i++)为for($i=$d;$i<=$totallist;$i++)

这个是静态页面分页的修改,动态的和这个方法一样

推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 仙贝旅行是日本最大的旅游服务平台之一,为广大用户提供优质的日本定制游服务。随着用户数量的增长,仙贝旅行决定与智齿科技合作,全面替换原有客服系统,打造全新的在线客服体系。该体系具备多渠道快速接入的能力,让仙贝旅行轻松与各个渠道的接入用户完成沟通。同时,机器人与人工协同发力,提升客户服务水平。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • SAP羞辱国产软件商:技术停在10年前
    SAP中国研究院总裁芮祥麟表示,国产软件厂商过于热衷概念炒作,技术水平停留在10年前的客户端架构水平。他认为,国内厂商推出基于SOA的产品或转型SAAS模式是不可能的,研发新架构需要时间。当前最热门的概念是云计算,芮祥麟呼吁国产厂商应该潜心研发底层架构。 ... [详细]
  • 本文讲述了孙悟空写给白骨精的信件引发的思考和反省。孙悟空在信中对自己的行为进行了反思,认识到自己胡闹的行为并没有给他带来实际的收获。他也揭示了西天取经的真相,认为这是玉皇、菩萨设下的一场陷阱。他还提到了师傅的虚伪和对自己的实心话,以及自己作为师傅准备提拔的对象而被派下来锻炼的经历。他认为路上的九九八十一难也都是菩萨算计好的,唐僧并没有真正的危险。最后,他提到了观音菩萨在关键时刻的指导。这封信件引发了孙悟空对自己行为的思考和反省,对西天取经的目的和自己的角色有了更深入的认识。 ... [详细]
author-avatar
海峡整形美容医院少校
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有