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 相关文章推荐
php实现jQuery扩展函数
Oct 30 PHP
有关PHP性能优化的介绍
Jun 20 PHP
解析php开发中的中文编码问题
Aug 08 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
php实现websocket实时消息推送
Mar 30 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
PHP Web表单生成器案例分析
Jun 02 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
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php解析json数据实例
2014/08/19 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
python异步Web框架sanic的实现
2020/04/27 Python
Python二元算术运算常用方法解析
2020/09/15 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
中文专业毕业生自荐信
2014/05/24 职场文书
国庆节标语大全
2014/10/08 职场文书
批评与自我批评总结
2014/10/17 职场文书
人事任命通知书
2015/04/21 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
详解Spring事件发布与监听机制
2021/06/30 Java/Android