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 IP及IP段进行访问限制的代码
Dec 17 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
php中实现字符串翻转的方法
Feb 22 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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常用image图像函数集
2013/06/24 PHP
重新认识php array_merge函数
2014/08/31 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
JS 常用校验函数
2009/03/26 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python定义函数实现累计求和操作
2020/05/03 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
单位计划生育责任书
2015/05/09 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
2016年父亲节寄语
2015/12/04 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android