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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
php 动态执行带有参数的类方法
Apr 10 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
php经典算法集锦
Nov 14 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php 清除网页病毒的方法
2008/12/05 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
初识Node.js
2015/03/20 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
python reverse反转部分数组的实例
2018/12/13 Python
python 多线程重启方法
2019/02/18 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
运动会方阵解说词
2014/02/12 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
房产转让协议书
2014/04/11 职场文书
小班评语大全
2014/05/04 职场文书
赔偿协议书
2015/01/27 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技