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分页显示制作详细讲解
Nov 19 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
php格式化日期实例分析
Nov 12 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python3的pip路径在哪
2020/06/23 Python
Python中return函数返回值实例用法
2020/11/19 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
办公室经理岗位职责
2014/01/01 职场文书
给老婆的保证书范文
2014/04/28 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
python如何读取和存储dict()与.json格式文件
2022/06/25 Python