PHP 长文章分页函数

<?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($Pag(www.111cn.net)eArray[$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=''测试文字,尽量长一些,www.111cn.net";
$current=$_REQUEST['page_t'];
$result=ff_page($content1,$current);
echo $result;
?>
from:http://www.111cn.net/phper/21/7438a396c8bc31f863be9a7de13dd6a6.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Avalonia跨平台入门第二十一篇之玩耍CEF

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送、语音播放、语音播放问题;今…

golang实现自定义驱动的Cache

近期在写 ActivedRouter项目的时候需求一个缓存模型&#xff0c;要求缓存模型支持不同驱动,例如:memory、file、redis、mysql&#xff0c;实现思路代码如下: cache.go文件,定义缓存对外接口 //ActivedRouter //Author:usher.yue //Amail:usher.yuegmail.com //TencentQQ:422366…

C和指针之函数之求最大公约数

1、求最大公约数 求公约数的规则如下/*** M % N 0 : N*gcd(M, N) * M % N R, R > 0 : gcd(N, R)*/ 2、代码实现 #include <stdio.h> /*** M % N 0 : N*gcd(M, N) * M % N R, R > 0 : gcd(N, R)*/int gcd(int …

关于c#调用c编译器

这个已经过了好久了具体的实现代码没得&#xff0c;但是大致思路自己整理了一下&#xff1a; 首先要调用c编译器&#xff0c;process.start&#xff08;&#xff09;&#xff1b; 之后需要自己来进行编译器对代码执行的命令。 转载于:https://www.cnblogs.com/why1115/p/481032…

【自定义控件】c#winform自定义控件实现标签控件

介绍首先我们设计这个控件的时候要明白控件是怎样交互的&#xff0c; 熟悉b站的小伙伴应该知道 &#xff0c;我们上传视频的时候会去选择标签 &#xff0c;我们输入标签文本 按下回车就代表该标签已经添加成功了&#xff0c;效果图如下&#xff01;控件拆分我们首先拆分一下该控…

ASP.NET 使用Ajax(转)

之前在Ajax初步理解中介绍了对Ajax的初步理解&#xff0c;本文将介绍在ASP.NET中如何方便使用Ajax&#xff0c;第一种当然是使用jQuery的ajax&#xff0c;功能强大而且操作简单方便&#xff0c;第二种是使用.NET封装好的ScriptManager。 $.ajax向普通页面发送get请求 这是最简单…

printk函数出现延迟输出的问题

错误描述 关于测试内核read接口 有如下代码片段&#xff1a; static ssize_t hello_read(struct file *filp, char __user *buf, size_t count, loff_t *ppos){int ret 0;printk("[read task]count%ld", count);memcpy(readbuf, kerneldata, sizeof(kerneldata));…

个人博客(05)

昨天&#xff1a;设计并制作了添加图书信息的界面 今天&#xff1a;准备学习制作修改店铺的界面问题&#xff1a;页面消息的提醒转载于:https://www.cnblogs.com/yibao/p/6849805.html

C和指针之函数之把数字字符串转为整数并且返回这个数字(ascii_to_integer)

1、问题 *字符串必须包含一个或多个数字,函数应该把这些数字字符转换为整数并且 *返回这个值,如果脂肪层参数包含了任何非数字字符,函数就要返回0,不考 *虑溢出情况 2、代码实现 #include <stdio.h>/***字符串必须包含一个或多个数字,函数应该把这些数字字符转…

如何有效的在 LINQ 查询中处理异常?

咨询区 Jader Dias参考下面的代码&#xff1a;myEnumerable.Select(a > ThisMethodMayThrowExceptions(a));如何保证在 Linq 的查询过程中即使抛出了异常&#xff0c;查询不会被提前中断&#xff0c;就好像在每层迭代上都有默认的 try catch 块。回答区 LeBaptiste我写了一个…

rman备份,crontab计划任务没有生成备份文件

利用crontab 执行计划和RMAN结合来实现 数据库的自动备份现象&#xff1a;利用计划任务来执行备份&#xff0c;只是生成了目录&#xff0c;却没有生成备份文件1&#xff1a; 手动执行备份脚本&#xff0c;没有问题2&#xff1a;crontab 计划任务&#xff0c;能够生成目录&#…

C和指针之函数之求参数列表中的最大值

1、问题 *编写一个叫max_list函数&#xff0c;它用于检查任意数目的整形参数*并返回他们中的最大值&#xff0c;参数列表必须以一个负数结尾&#xff0c;提*示列表的结束2、代码实现 #include <stdio.h> #include <stdarg.h> /***编写一个叫max_list函数&#xff0…

fir.im 持续集成技术实践

互联网时代&#xff0c;人人都在追求产品的快速响应、快速迭代和快速验证。不论是创业团队还是大中型企业&#xff0c;都在探索属于自己的敏捷开发、持续交付之道。fir.im 团队也在全面实施敏捷&#xff0c;并推出新持续集成服务— flow.ci &#xff0c;以帮助企业将开发测试流…

Redis调用及使用

首先第一步&#xff1a; 添加引用1.ServiceStack.DLLServiceStack.Interfaces.DLLServiceStack.ServiceInterface.DLL以上引用都可以在网上下载到2.调用&#xff1a;demo&#xff1a; stringticket "" ;stringhost "localhost" ;stringelementKey "…

MYSQL-skip-networking

1、跳过tcp/ip协议通信&#xff1a;[mysqld]# The TCP/IP Port the MySQL Server will listen onport3306#log_outputTABLEskip-networking #添加这一行然后重启服务2、测试连接&#xff1a;C:\Documents and Settings\Administrator>mysql -u root -pEnter password:ERROR…

宇宙最強的IDE - Visual Studio 25岁生日快乐

每位开发者从入门开始或多或少都会接触过 Visual Studio &#xff0c; 现今的 Visual Studio 除了支持传统的 C , C# , Visual Basic.NET ,F# 的编程语言外&#xff0c;还可以做 Python , Node.js 的开发。在应用场景上也从单一的桌面应用&#xff0c;延伸到 Web &#xff0c; …

C和指针之实现可变参数函数编译出现expanded from macro ‘va_arg‘ #define va_arg(ap, type) 解决办法

1、问题 编译可变参数函数里面有va_arg函数的时候提示这个错误 expanded from macro va_arg #define va_arg(ap, type) 2、原因 我没有考虑“默认参数提升”问题 如果一个函数的形参类型未知, 例如使用了Old Style C风格的函数声明,或者函数的参数列表中有 ...,那么调…

有没有一段代码,让你觉得人类的智慧也可以璀璨无比?【转】

转自&#xff1a;https://www.zhihu.com/question/30262900 作者&#xff1a;烧茄子链接&#xff1a;https://www.zhihu.com/question/30262900/answer/48741026来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。当然是这个…

maven中pom.xml中的scope讲解

一、compile&#xff1a;编译范围compile是默认的范围&#xff1b;如果没有提供一个范围&#xff0c;编译范围依赖在所有的classpath 中可用&#xff0c;同时它们也会被打包。而且这些dependency会传递到依赖的项目中。 二、provided&#xff1a;已提供范围provided 明了depend…

C和指针之函数之实现简单的printf函数(支持%d, %f, %c, %s)

1、问题 *简化printf函数,能够处理%d, %f, %c, %s格式码,假设已经存在 *print_integer和print_float函数,另外2个类型用put char来打印 思路: void va_start(va_list ap, last);// 取第一个可变参数的指针给ap,// last是函数声明中的最后一个固定参数(比如printf函数原型…