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+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
php实现邮件发送并带有附件
Jan 24 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
php中define用法实例
Jul 30 PHP
深入php内核之php in array
Nov 10 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
Jun 30 PHP
php简单截取字符串代码示例
Oct 19 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python测试人员需要掌握的知识
2018/02/08 Python
python移位运算的实现
2019/07/15 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
延安红色之旅心得体会
2014/10/07 职场文书
高三语文复习计划
2015/01/19 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
寒假生活随笔
2015/08/15 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Nginx 常用配置
2022/05/15 Servers