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和ACCESS写聊天室(四)
Oct 09 PHP
php获得文件扩展名三法
Nov 25 PHP
PHP基础陷阱题(变量赋值)
Sep 12 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
深入PHP变量存储的详解
Jun 13 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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 操作excel文件的方法小结
2009/12/31 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
js实现文字截断功能
2016/09/14 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
python合并文本文件示例
2014/02/07 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
wxPython的安装与使用教程
2018/08/31 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python函数中不定长参数的写法
2019/02/13 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
校园安全教育广播稿
2014/02/17 职场文书
学校募捐倡议书
2014/05/14 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
2015元旦感言
2015/12/09 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏