php页码形式分页函数支持静态化地址及ajax分页
2023-06-13 09:15:24 时间
之前每次遇到分页,总是得自己写,觉得挺繁琐的,所以本着通用的原则,写了一个分页的方法,特此记录。
目前此分页支持静态化地址分页和无链接地址时的ajax分页(但是js得自己写):
支持的静态地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式静态化需根据自己情况进行改写
支持ajax方式分页时,$link参数为空,但提供了pid和optype,其中pid用于获取该页码页数,optype用于一个页面存在多个分页时区分当前触发动作属于哪个分页逻辑
复制代码代码如下:
目前此分页支持静态化地址分页和无链接地址时的ajax分页(但是js得自己写):
支持的静态地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式静态化需根据自己情况进行改写
支持ajax方式分页时,$link参数为空,但提供了pid和optype,其中pid用于获取该页码页数,optype用于一个页面存在多个分页时区分当前触发动作属于哪个分页逻辑
/**********************************************************
*
*获取页码
*
**********************************************************
*
*@paramsstring$link链接地址(链接为空时可以用ajax翻页)
*
*@paramsint$intPage当前页数
*
*@paramsint$intTotal总页数
*
*@paramsint$intSize要显示的页数个数
*
*@paramsstring$type链接种类(多个翻页用于区分翻页区域)
*
**********************************************************
*
*@returnarray
*/
privatefunctionformatPage($link="",$intPage,$intTotal,$intSize=3,$type="")
{
$strPage="<divclass="g_serpageclearfix">";
if($intTotal>0)
{
if($intPage>1)
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".($intPage-1),$link).""><<上一页</a>":"<aoptype="".$type.""pid="showpage_".($intPage-1).""href="javascript:void(0)"><<上一页</a>";
else
$strPage.="<ahref="javascript:void(0)"><<上一页</a>";
//窗口宽度大于等于总页数
if(($intSize+2)>=$intTotal)
{
for($i=1;$i<=$intTotal;$i++)
{
$strClass=$i==$intPage?"class="g_serpagcur"":"";
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".$i,$link).""".$strClass.">".$i."</a>":"<aoptype="".$type.""pid="showpage_".$i.""href="javascript:void(0)"".$strClass.">".$i."</a>";
}
}
else
{
if($intPage<ceil($intSize/2))
{
for($i=1;$i<=$intSize;$i++)
{
$strClass=$i==$intPage?"class="g_serpagcur"":"";
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".$i,$link).""".$strClass.">".$i."</a>":"<aoptype="".$type.""pid="showpage_".$i.""href="javascript:void(0)"".$strClass.">".$i."</a>";
}
$strPage.=$link!=""?"<aclass="gpage_nobor">…</a><ahref="".preg_replace("/-p(\d+)/","p".$intTotal,$link)."">".$intTotal."</a>":"<aclass="gpage_nobor">…</a><aoptype="".$type.""pid="showpage_".$intTotal.""href="javascript:void(0)">".$intTotal."</a>";
}
elseif(($intTotal-$intPage)<ceil($intSize/2))
{
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p1",$link)."">1</a><aclass="gpage_nobor">…</a>":"<aoptype="".$type.""pid="showpage_1"href="javascript:void(0)">1</a><aclass="gpage_nobor">…</a>";
for($i=($intTotal+1-$intSize);$i++;$i<=$intTotal)
{
$strClass=$i==$intPage?"class="g_serpagcur"":"";
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".$i,$link).""".$strClass.">".$i."</a>":"<aoptype="".$type.""pid="showpage_".$i.""href="javascript:void(0)"".$strClass.">".$i."</a>";
}
}
else
{
$intOffset=floor($intSize/2);
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p1",$link)."">1</a>":"<aoptype="".$type.""pid="showpage_1"href="javascript:void(0)">1</a>";
if(($intPage-$intOffset)>2)
{
$strPage.="<aclass="gpage_nobor">…</a>";
}
for($i=(($intPage-$intOffset)<=1?2:($intPage-$intOffset));$i<=(($intPage+$intOffset)>=$intTotal?($intTotal-1):($intPage+$intOffset));$i++)
{
$strClass=$i==$intPage?"class="g_serpagcur"":"";
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".$i,$link).""".$strClass.">".$i."</a>":"<aoptype="".$type.""pid="showpage_".$i.""href="javascript:void(0)"".$strClass.">".$i."</a>";
}
if(($intPage-$intOffset)<($intTotal-1))
{
$strPage.="<aclass="gpage_nobor">…</a>";
}
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".$intTotal,$link)."">".$intTotal."</a>":"<aoptype="".$type.""pid="showpage_".$intTotal.""href="javascript:void(0)">".$intTotal."</a>";
}
}
if($intPage<$intTotal)
{
$strPage.=$link!=""?"<ahref="".preg_replace("/-p(\d+)/","p".($intPage+1),$link)."">下一页>></a>":"<aoptype="".$type.""pid="showpage_".($intPage+1).""href="javascript:void(0)">下一页>></a>";
}
else
{
$strPage.="<ahref="javascript:void(0)">下一页>></a>";
}
}
$strPage.="</div>";
return$strPage;
}
相关文章
- Linux更新:升级PHP版本(linux更新php版本)
- PHP实现MSSQL数据库高效操作(php操作mssql)
- 文件MySQL更新实现快速PHP文件升级(mysql更新php)
- PHP轻松修改MySQL数据,实现数据高效处理(php修改mysql数据)
- PHP和MySQL技巧:掌握如何限制数据条数(phpmysql条数)
- PHP如何连接MSSQL数据库?(php连接mssql)
- Linux系统如何实现PHP开机自启动?(linux开机启动php)
- 驱动开发:PHP框架与MongoDB的结合(php框架mongodb)
- PHP连接MySQL指南(php连mysql)
- PHP实现连接MS SQL数据库的实战指南(php 打开mssql)
- 从头到尾:使用PHP进行MSSQL手工注入(php手工注入mssql)
- Linux平台如何高效搜索PHP文件(linux搜索php)
- MySQL与PHP开发之旅(mysql与php书籍)
- 如何在PHP中使用MySQL数据库(mysql中php)
- PHP和XML:使用expat函数(三)
- PHP金额数字转换成英文
- php数组的一个悲剧?
- PHP中数组合并的两种方法及区别介绍
- 解析php中curl_multi的应用
- PHP的PSR规范中文版
- PHP面向对象精要总结
- php递归创建目录的方法