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 动态随机生成验证码类代码
Apr 09 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
PHP之密码加密的几种方式
Jul 29 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
php的4种常用运行方式详解
Dec 22 PHP
php对微信支付回调处理的方法
Aug 23 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
laravel框架中控制器的创建和使用方法分析
Nov 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
浅析Yii2缓存的使用
2016/05/10 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
python3序列化与反序列化用法实例
2015/05/26 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
详解python 注释、变量、类型
2018/08/10 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
服装销售人员求职自我评价
2013/09/26 职场文书
高中班长自我鉴定
2013/12/20 职场文书
材料员岗位职责
2015/02/10 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
《勇者辞职不干了》ED主题曲无字幕动画MV公开
2022/04/13 日漫