php页码形式分页函数支持静态化地址及ajax分页

 这篇文章主要介绍了php页码形式分页函数,此分页支持静态化地址分页和无链接地址时的ajax分页,需要的朋友可以参考下

之前每次遇到分页,总是得自己写,觉得挺繁琐的,所以本着通用的原则,写了一个分页的方法,特此记录。 
 
目前此分页支持静态化地址分页和无链接地址时的ajax分页(但是js得自己写): 
 
支持的静态地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html 
 
其他形式静态化需根据自己情况进行改写 
 
支持ajax方式分页时,$link参数为空,但提供了pid和optype,其中pid用于获取该页码页数,optype用于一个页面存在多个分页时区分当前触发动作属于哪个分页逻辑 
代码如下:
/********************************************************** 

* 获取页码 

********************************************************** 

* @params string $link 链接地址(链接为空时可以用ajax翻页) 

* @params int $intPage 当前页数 

* @params int $intTotal 总页数 

* @params int $intSize 要显示的页数个数 

* @params string $type 链接种类(多个翻页用于区分翻页区域) 

********************************************************** 

* @return array 
*/ 
private function formatPage($link="",$intPage,$intTotal,$intSize=3,$type="") 

$strPage = '<div class="g_serpage clearfix">'; 
if($intTotal > 0) 

if($intPage > 1) 
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p".($intPage-1),$link).'"><<上一页</a>':'<a optype="'.$type.'" pid="showpage_'.($intPage-1).'" href="javascript:void(0)"><<上一页</a>'; 
else 
$strPage .= '<a href="javascript:void(0)"><<上一页</a>'; 
//窗口宽度大于等于总页数 
if( ($intSize+2) >= $intTotal ) 

for($i=1;$i<=$intTotal;$i++) 

$strClass = $i == $intPage ? 'class="g_serpagcur"' : ""; 
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$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!=''?'<a href="'.preg_replace("/-p(d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>'; 

$strPage .= $link!=''?'<a class="gpage_nobor" >…</a><a href="'.preg_replace("/-p(d+)/","p".$intTotal,$link).'" >'.$intTotal.'</a>':'<a class="gpage_nobor" >…</a><a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)" >'.$intTotal.'</a>'; 

elseif(($intTotal-$intPage) < ceil($intSize/2)) 

$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p1",$link).'">1</a><a class="gpage_nobor" >…</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a><a class="gpage_nobor" >…</a>'; 
for($i = ($intTotal + 1 - $intSize);$i++;$i<=$intTotal) 

$strClass = $i == $intPage ? 'class="g_serpagcur"' : ""; 
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>'; 


else 

$intOffset = floor($intSize/2); 
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p1",$link).'">1</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a>'; 
if( ($intPage - $intOffset) > 2) 

$strPage .= '<a class="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!=''?'<a href="'.preg_replace("/-p(d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>'; 

if( ($intPage - $intOffset) < ($intTotal - 1)) 

$strPage .= '<a class="gpage_nobor" >…</a>'; 

$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p".$intTotal,$link).'">'.$intTotal.'</a>':'<a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)">'.$intTotal.'</a>'; 


if($intPage < $intTotal) 

$strPage .= $link!=''?'<a href="'.preg_replace("/-p(d+)/","p".($intPage+1),$link).'">下一页>></a>':'<a optype="'.$type.'" pid="showpage_'.($intPage+1).'" href="javascript:void(0)">下一页>></a>'; 

else 

$strPage .= '<a href="javascript:void(0)">下一页>></a>'; 


$strPage .= "</div>"; 
return $strPage; 

 

时间: 2024-10-27 05:04:57

php页码形式分页函数支持静态化地址及ajax分页的相关文章

php页码形式分页函数支持静态化地址及ajax分页_php技巧

之前每次遇到分页,总是得自己写,觉得挺繁琐的,所以本着通用的原则,写了一个分页的方法,特此记录. 目前此分页支持静态化地址分页和无链接地址时的ajax分页(但是js得自己写): 支持的静态地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html 其他形式静态化需根据自己情况进行改写 支持ajax方式分页时,$link参数为空,但提供了pid和optype,其中pid用于获取该页码页数,optype用于一个页面存在多个分页时区分当前触发动作属于哪个分页逻辑 复制代码

PHP分页函数代码(简单实用型)_php基础

准备数据: 新建一个数据库 test 执行下面的语句(新建一个表 test :id.sex.name 三个字段) CREATE TABLE `test` ( `id` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `sex` INT( 1 ) NOT NULL , `name` VARCHAR( 20 ) NOT NULL ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin; 添加数据到 te

怎么通过urlrewrite实现目录形式的静态化?

问题描述 我用urlrewrite实现静态化,需要实现形如/aaa/bbb/ccc/这样的目录形式,可是我从网上查找资料都需要建立aaa,bbb,ccc这样的目录,然后在目录下面放上默认网页,可以目录太多,建起来太麻烦.有没有不用建立目录,直接靠在config文件里配置实现的方法.求实现过的朋友指点!!! 解决方案 解决方案二:你去查下route,mvc.asp.net都支持(仅限Frame4以上版本)解决方案三:从.net2.0时代开始就支持url重写了,配置一下web.config就行了.解

java SSM 自适应 响应式 企业网站 源码 SSM 生成静态化 支持 手机 平板 PC 三合一

java 企业网站源码 前后台都有 静态模版引擎, 代码生成器大大提高开发效率 点击:获取地址 QQ 313596790 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务器负担小 3.网站前端采用主流的相应式布局,支持PC.平板.手机浏览器访问 4.springmvc +spring4.2.5+ mybaits3.3  SSM 普通java web(非maven) 

使用ob系列函数实现PHP网站页面静态化_php实例

将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一. 其他还有模板替换法,opcache等方法. 静态化的作用: 提高网站的响应速度,降低服务器的负载: 用于搜索引擎的SEO: 利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化. 静态化之前: <?php for($i=0;$i<1000;$i++){ echo "bull<br>"; } ?> 静态化: <?php ob_start();

如何让PHPnow支持wordpress静态化链接的方法_服务器其它

PHPnow有一个优势就是直接装好了ZendOptimizer,当然一般人是用不到这个的,暂且略过. 在我的试验中,XAMPP对wordpress静态化是直接支持的.PHPnow虽然也是打开了apache的mod_rewrite模块,但是对wordpress的静态化还要依赖于.htaccess这个文件(有可能XAMPP也是这样). 配置方法如下. 首先到wordpress所在的目录下,找到.htaccess文件,用记事本编辑它. 如果没有这个文件,那就要麻烦一点,你需要先打开记事本,文件另存为,

网站静态化

随着SEO 的普及,静态化便成为网站开发的必要技术之一.网页设计 时,网站静态化通常有三种方法可以实现,一种是伪静态,一种是实实在在的静态页面,最后一种是pathinfo技术. 伪静态 下, 如果是apache服务器,是通过.htaccess文件来操作.如果是IIS服务器,则是通过httpd.ini和rewrite.dll来实现.伪静 态处理的关键技术是配置文件的规则如何得到有效的控制,并在html页面里对应起来,一旦规则改变,则html页面里的链接也需要根据规则动态的改变.后 台设置规则,并且

PHP实现页面静态化的超简单方法_php实例

为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态页面静态化是非常有效的加速方法.(纯静态,伪静态还是需要PHP解释器的) 3.生成静态URL利于SEO,利于蜘蛛抓取和收录,有利于提升排名 优化页面响应时间方法 1.动态页面静态化 2.优化数据库 3.负载均衡 4.使用缓存等等 //动态页面静态化一般用于不经常改动的地方,频繁改动的地方一般不适用静

功能强大的php分页函数_php技巧

分页是每一个程序需要去理解的东西,学习过的几门语言中我发现分页原理都是一样的,下面为php初学者分析一下php分页实现与最后面补充了一个超级强大的分页函数. 文章内容分页主要有两个办法: 办法一.按字数控制进行分页 按字数分页办法简单易用,但效果不好. 大致思想:首先.设定每页能容纳的最大字数,然后.计算文章内容的总字数,再由总字数和单页最大字数计算出出总页数,这样整个分页的准备工作就已经做好了. 具体到每一页的显示内容可以通过内容截取来实现,比如:页容纳500字,文章内容有2200字,那么当页