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 相关文章推荐
计数器详细设计
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
一个用php实现的获取URL信息的类
Jan 02 PHP
php与php MySQL 之间的关系
Jul 17 PHP
PHP使用range协议实现输出文件断点续传代码实例
Jul 04 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP实现Huffman编码/解码的示例代码
Apr 20 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
PHP7 弃用功能
Mar 09 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
一次编写,随处运行
2006/10/09 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
vue cli 全面解析
2018/02/28 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
详解Python Socket网络编程
2016/01/05 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python 远程开关机的方法
2020/11/18 Python
使用django自带的user做外键的方法
2020/11/30 Python
学生感冒英文请假条
2014/02/04 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
法定代表人证明书
2014/11/28 职场文书
国家助学贷款承诺书
2015/04/30 职场文书