实例说明
在遍历文件中的内容时,由于文件内容很多,最理想的方法就是分页读取文本文件中的内容。本实例将介绍如何分页读取文本文件中的数据。 关键技术 完成超长文本的分页输出需要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完成。 |
|
来自: Alkaid2015 > 《74.PHP》