PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部


Posted in PHP onOctober 22, 2009
<?php function ff_page($content,$page) 
{ 
global $expert_id; 
$PageLength = 2000; //每页字数 
$CLength = strlen($content); 
$PageCount = floor(($CLength / $PageLength)) + 1; //计算页数 
$PageArray=array(); 
$Seperator = array("\n","\r","。","!","?",";",",","”","'"); //分隔符号 //echo "页数:".$PageCount."<br>"; 
//echo "长度:".$CLength."<br><br><br>"; 
//strpos() 函数返回字符串在另一个字符串中第一次出现的位置 
if($CLength<$PageLength) 
{ 
echo $content; 
}else{ 
$PageArray[0]=0; 
$Pos = 0; 
$i=0; 
//第一页 
for($j=0;$j<sizeof($Seperator);$j++) 
{ 
//echo $Seperator[$j]; 
$Pos=strpos($content,$Seperator[$j],$PageArray[$i]+1900); 
while($Pos > 0 && $Pos < ($i+1)*$PageLength && $Pos > $i*$PageLength ) 
{ 
$PageArray[$i] = $Pos ; 
$Pos = strpos($Pos+$PageLength,$content,$Seperator[$j]) ; 
} 
if($PageArray[$i]>0) 
{ 
$j = $j + sizeof($Seperator) + 1; 
} 
} 
//--- 
for($i=1;$i<$PageCount-1;$i++){ 
for($j=0;$j<sizeof($Seperator);$j++) 
{ 
//echo $Seperator[$j]; 
$Pos=strpos($content,$Seperator[$j],$PageArray[$i-1]+1900); 
while($Pos > 0 && $Pos < ($i+1)*$PageLength && $Pos > $i*$PageLength ) 
{ 
$PageArray[$i] = $Pos ; 
$Pos = strpos($Pos+$PageLength,$content,$Seperator[$j]) ; 
} 
if($PageArray[$i]>0) 
{ 
$j = $j + sizeof($Seperator) + 1; 
} 
} 
} 

//--最后一页 
$PageArray[$PageCount-1]=$CLength; 
//$page=2; 
if($page==1) 
{ 
$output=substr($content,0,$PageArray[$page-1]+2); 
} 
if($page>1 && $page<=$PageCount) 
{ 
$output=substr($content,$PageArray[$page-2]+2,$PageArray[$page-1]-$PageArray[$page-2]); 
$output=" (上接第".($page-1)."页)\n".$output; 
} 
echo str_replace("\n","<br>   ",$output); 
//if($page==$PageCount) 
//return $output=substr($content,$PageArray[$page-2]+2,$PageArray[$page-1]-$PageArray[$page-2]); 
if($PageCount>1) 
{ 
echo "<br><br><br><center>"; 
echo "<font color='ff0000'>".$page."</font>/".$PageCount." 页  "; 
if($page>1) 
echo "<a href=$PHP_SELF?expert_id=$expert_id&page_t=".($page-1).">上一页</a> "; 
else 
echo "上一页 "; 
for($i=1;$i<=$PageCount;$i++) 
{ 
echo "<a href=$PHP_SELF?expert_id=$expert_id&page_t=".$i.">[".$i."]</a> "; 
} 
if($page<$PageCount) 
echo " <a href=$PHP_SELF?expert_id=$expert_id&page_t=".($page+1).">下一页</a> "; 
else 
echo " 下一页 "; 
echo "</center>"; 
} 
} 
}?>

使用
<?php 
$content1=''测试文字,尽量长一些,3water.com"; 
$current=$_REQUEST['page_t']; 
$result=ff_page($content1,$current); 
echo $result; 
?>

PHP 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
聊天室php&amp;mysql(三)
Oct 09 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
浅析php中三个等号(===)和两个等号(==)的区别
Aug 06 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
php实现的表单验证类完整示例
Aug 13 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
Wordpress php 分页代码
Oct 21 #PHP
PHP字符串 ==比较运算符的副作用
Oct 21 #PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 #PHP
php实现mysql同步的实现方法
Oct 21 #PHP
php 魔术方法使用说明
Oct 20 #PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 #PHP
php foreach、while性能比较
Oct 15 #PHP
You might like
ajax取消挂起请求的处理方法
2013/03/18 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
Python创建系统目录的方法
2015/03/11 Python
Python的gevent框架的入门教程
2015/04/29 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python中异常重试的解决方案详解
2017/05/05 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
python如何定义带参数的装饰器
2018/03/20 Python
python中的逆序遍历实例
2019/12/25 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
python实现控制台输出彩色字体
2020/04/05 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
社区工作者感言
2014/03/02 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
开学典礼观后感
2015/06/15 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫