实例说明
在遍历文件中的内容时,由于文件内容很多,最理想的方法就是分页读取文本文件中的内容。本实例将介绍如何分页读取文本文件中的数据。
关键技术
完成超长文本的分页输出需要3方面的技术:第1方面,自定义函数。通过自定义函数读取文本文件,可以避免中文字符串出现乱码:第2方面,字符串函数。需要通过strlen()函数计算字符串的长度,通过substr()函数对字符串进行截取:第3方面,文件系统函数。通过file_get_contents()函数读取文本文件中的数据。
自定义函数msubstr()的语法如下:
//定义一个用于截取一段字符串的函数msubstr()
function msubstr($str,$start,$len){ //$str指的是字符串,$start指的是字符串的起始位置,$len指的长度
$strlen=$start+$len; //用$strlen存储字符串的总长度(从字符串的起始位置都字符串的总长度)
for($i=0;$i<$strlen;$i++){ //通过for循环语句,循环读取字符串
if(ord(substr($str,$i,1))>0xa0){ //如果字符串中首个字节的ASCII序数值大于0xa0,则表示为汉字
$tmpstr.=substr($str,$i,2); //每次取出两位字符赋给变量$tmpstr,即等于一个汉字
$i++ //变量自加1
}else{ //如果不是汉字,则每次取出一位字符赋给变量$tmpstr
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr; //输出字符串
}
设计过程
(1)创建function.php文件,编写自定义函数msubstr(),完成对文本文件的截取操作。
(2)创建index.php文件,首先通过文件系统函数file_get_contents()读取整个文件的内容,然后调用自定义函数和字符串函数完成对文件的截取操作,实现截取后内容的分页输出,其关键代码如下:
<div id="synopsis">
<!--创建div 标签,用于获取js文件中返回的分页结果-->
<table width="545"border="0"cellspacing="0"cellpadding="0">
<tr>
<td><?php
include("function.php");
//读取超长文本中的数据,实现超长文本中数据的分页显示
if($_GET['page']){
$counter=file_get_contents("data.txt");
$length=strlen($counter)
$page_count=ceil($length/850);
$c=msubstr($counter,0,($_GET['page']-1)*850);
$c1=msubstr($counter,0,$_GET['page']*850);
ehco substr($c1,strlen($c),strlen($c1)-strlen($c));
}
?>
</td>
</tr>
<tr>
<td><table width="535"border="0"align="center"cellpadding="0"cellspacing="0">
<tr>
<!--设置超长文本分页显示的超级链接-->
<td width="37%"align="center"valign="middle"bgcolor="#FFFFFF">内容 <?php ehco $page_count;?>页 当前 第<?php echo $_GET['page'];?>页</td>
<td width="63%"height="28"align="center"valign="middle">bgcolor="#FFFFFF"><?php
if($_GET['page']!=1){
?>
<!--调用no_refurbish_pagination函数,实现无刷新的分页输出-->
<a href="#"onClick='return no_refurbish_pagination("index_ok.php?page=1")'>首页</a> <a href="#"onClick='return no_refurbish_pagination("index_ok.php?page=<?php echo $_GET['page']-1;?>")'上一页</a>
<?php
if($_GET['page']!=1){
?>
<a href="#"onClick="return no_refurbish_pagination('index_ok.php?page=<?php echo $_GET['page']+1;?>')">下一页</a><a href="#"onClick='return no_refubish_pagination("index_ok.php?page=<?php echo $page_count;?>")'>尾页</a>
<?php
}
?>
</td>
</tr>
<table></td>
</tr>
</table>
</div>
(3)创建index_ok.php文件,实现数据的无刷新分页。index_ok.php中的内容与index.php中div标签synopsis的内容相同。
(4)创建js脚本文件discuss_js.js,通过Ajax实现无刷新的操作。
秘笈心法
Ajax无刷新分页。
在本实例中不但实现了文本文件内容的分页输出,而且是无刷新分页输出。具体操作通过js脚本文件discuss_js.js和index_ok.php完成。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。