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 数据库的一个例子
Oct 09 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
php 代码优化之经典示例
Mar 24 PHP
jQuery 源码分析笔记
May 25 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
Laravel框架表单验证详解
Sep 04 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 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
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python os模块介绍
2014/11/30 Python
python中zip()方法应用实例分析
2016/04/16 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
计算机毕业生自荐信范文
2014/03/23 职场文书
企业总经理任命书
2014/06/05 职场文书
cf战队宣传语
2015/07/13 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android