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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
PHP 字符串 小常识
Jun 05 PHP
php计算十二星座的函数代码
Aug 21 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
Sep 22 PHP
又拍云异步上传实例教程详解
Apr 19 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 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文件压缩之PHPZip类用法实例
2015/06/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
快速排序 php与javascript的不同之处
2011/02/22 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python中dict和set的用法讲解
2019/03/28 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python 读取位于包中的数据文件
2020/08/07 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
python各种excel写入方式的速度对比
2020/11/10 Python
python re模块常见用法例举
2021/03/01 Python
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
工作说明书格式
2014/07/29 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
导游欢送词
2015/01/31 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js