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 防注入函数(格式化数据)
Aug 08 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
php实现小程序支付完整版
Oct 09 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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
smarty的保留变量问题
2008/10/23 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
Js 中debug方式
2010/02/07 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
详解vue v-model
2020/08/31 Javascript
Python中一行和多行import模块问题
2018/04/01 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Django实现文件上传和下载功能
2019/10/06 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
早读迟到检讨书
2014/01/24 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
先进工作者事迹材料
2014/12/23 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python