php中长文章分页显示实现代码


Posted in PHP onSeptember 29, 2012

欢迎交流!实现代码如下:

<?php include('include/config.php'); ?> 
<?php 
/** 
*Author:乌鸟heart 
*实现长文章分页的代码 
*原理: 
*利用一个数组来记录文章每一页(用p0、p1、p2...做手动标记)的起始字节数,然后通过利用php函数操作这个数组去显示分页后的文章。分页显示,传递ptag(与tag的值一样)值。 
*利用到的php函数: 
*1、strlen("字符串") - Returns the length of the given string. - 返回字符串的字节总数。 
*2、strpos("字符串","匹配字符") - Returns the numeric position of the first occurrence of needle in the haystack string. - 返回字符串中出现的第一个相匹配的字符所在的字节序数。 
*3、substr("字符串","起始位置","终止位置") - substr() returns the portion of string specified by the start and length parameters. - 返回字符串中指定起止位置的若干字符。 
*/ 
$sql = "select * from article where id = 41";//定义sql语句,返回id为41的内容 
$result = mysql_query($sql);//执行sql语句,返回结果集 
$row = mysql_fetch_array($result);//以数组的形式从记录集返回 
$content = $row['content'];//把文章赋给变量$content 
$articleCounts = strlen($content);//返回$content(文章)的总字节数 
$isTrue = true;//循环标记 
$tag = 0;//分页标记、数组下标 
echo "字节总数:".$articleCounts."<br>";//测试信息 
//寻找标记“ptag”,并把其位置(所在的字节数)赋给数组array[]------------------------------------------ 
while($isTrue){ 
$startAt = strpos($content,"p".$tag);//得到相应ptag的字节序数 
if($startAt != false){ //如果有标记(返回值不是false),则记录位置 
$array[$tag++] = $startAt; 
}else{ //如果没有标记,则将数组array[0]赋值'\0' 
$array[$tag] = '\0'; 
$isTrue = false; 
} 
} 
//循环输出标记位置-------------------------------------------------------------测试信息 
for($i = 0; $i < $tag; $i++){ 
echo $array[$i]."<br>"; 
} 
echo "------------------------------ <br>"; 
//输出内容--------------------------------------------------------------------- 
if($array[0] == '\0'){ //判断是否有标记 
echo $content; //没有标记的情况,单页显示 
}else{ //有标记的情况,分页显示 
//输出分页内容 
if( isset($_GET['ptag']) ){ //判断是否有ptag值传递,有则显示第 ptag+1 页,否则显示第一页(ptag=0) 
$ptag = $_GET['ptag']; //把ptag的值赋给变量$ptag 
if($ptag < $tag){ //判断参数是否有误 
echo "有值传递,显示第".($ptag+1)."页<br>"; //测试信息 
echo "值为:".$ptag."<br>"; //测试信息 
echo substr($content,$array[$ptag - 1] + 2,$array[$ptag] - $array[$ptag - 1] - 2);//显示ptag+1页的内容 
}else{echo "参数有误";} 
} 
else{ //没有ptag值传递的情况,显示第一页(ptag=0) 
echo "无值传递,显示第1页<br>"; //测试信息 
echo substr($content,0,$array[0] - 1);//显示第一页的内容 
} 
} 
//循环显示页数链接------------------------------------------------------------- 
if($array[0] != '\0'){ //在有手动标记的情况下才显示页数链接 
for($i = 0;$i < $tag;$i++){ 
if($ptag == $i){ //如果是本页,则粗体显示 
$pager .= " <a href='test.php?ptag=$i'><b>".($i+1)."</b></a> "; 
}else{ //不是本页 
$pager .= " <a href='test.php?ptag=$i'>".($i+1)."</a> "; 
} 
} 
echo "<br>跳转至第".$pager."页"; //输出链接 
} 
?>
PHP 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
PHP的FTP学习(二)
Oct 09 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php去除HTML标签实例
Nov 06 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 PHP
完善CodeIgniter在IDE中代码提示功能的方法
Jul 19 PHP
Yii分页用法实例详解
Dec 04 PHP
php强制用户转向www域名的方法
Jun 19 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
如何用RabbitMQ和Swoole实现一个异步任务系统
May 29 PHP
PHP实现下载功能的代码
Sep 29 #PHP
php流量统计功能的实现代码
Sep 29 #PHP
Zend的AutoLoad机制介绍
Sep 27 #PHP
说说PHP的autoLoad自动加载机制
Sep 27 #PHP
php FLEA中二叉树数组的遍历输出
Sep 26 #PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 #PHP
PHP可逆加密/解密函数分享
Sep 25 #PHP
You might like
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
python框架中flask知识点总结
2018/08/17 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
信息技术教学反思
2014/02/12 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
关于环保的建议书400字
2014/03/12 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
钱学森观后感
2015/06/04 职场文书
医学会议开幕词
2016/03/03 职场文书
辞职申请书范本
2019/05/20 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
实现一个简单得数据响应系统
2021/11/11 Javascript
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js