一个分页读取TXT 文件的阅读程序

2020-08-07 10:33:41  阅读 3359 次 评论 0 条

一个分页读取TXT 文件的阅读程序

主要内容来自网上 ,我做了一些修改 加上了读取数据库的功能。

运行下来这段代码读取大文件的时候速度太慢,现在改进了一下 回头重发一个贴。

<?php
    session_start(); 
    header("Content-Type:text/html;charset=utf-8");
    include_once("conMySQL.php");
    if (empty($page)) {$page=1;}
    if (isset($_GET['page'])==TRUE) {$page=$_GET['page']; }
?> 
<?php 
if($page){ 
    $SQL="select idd,id,lx,mc,dx,rq from book where idd=".$_GET["idd"];
     //echo $SQL,"<br>";
    $r=mysqli_query($cn,$SQL);
    if ($r->num_rows > 0) {
        $s=mysqli_fetch_array($r);
        $SQL=$s["id"];
        //echo $SQL. "<br>";
        $filename=substr($SQL,3);
        for($i=strlen($filename);$i<10;$i++){
            $filename="0".$filename;

        }
        $filename="txt/". substr($filename,4,3 ). "/". $filename.".txt";

        //echo $filename;
        $SQL="";
        $SQL= $SQL. "<th>书名:".$s["mc"]. " </th>";       
        $SQL= $SQL. "<td>类型:".$s["lx"]. "  文件大小:".$s["dx"]. "kb  ";
        $SQL= $SQL. " <a href='download.php?idd=". $_GET["idd"]. "'>下载全本</a>";
        $SQL= $SQL. "</td>";

        

        }
$counter=file_get_contents($filename); //读取txt文件内容到$counter
$length=strlen($counter); 
$page_count=ceil($length/5000); 
function msubstr($str,$start,$len){ 
    $strlength=$start+$len; 
    $tmpstr="";
    for($i=0;$i<$strlength;$i++) { 
    if(ord(substr($str,$i,1))==0x0a) { 
        $tmpstr.='<br />';
    }
    if(ord(substr($str,$i,1))>0xa0) { 
        $tmpstr.=substr($str,$i,2); 
        $i++; 
    }
    else{ 
        $tmpstr.=substr($str,$i,1); } 
    } 
    $tmpstr=strToUtf8($tmpstr);
    return $tmpstr; 
} 
function strToUtf8($str){
    $encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
    if($encode == 'UTF-8'){
        return $str;
    }else{
        return mb_convert_encoding($str, 'UTF-8', $encode);
    }
}
//------------截取中文字符串---------
$c=msubstr($counter,0,($page-1)*5000); 
$c1=msubstr($counter,0,$page*5000); 
 
}?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title><?php echo $s["mc"]; ?></title> 
<style type="text/css"> 
<!-- 
.STYLE1 {font-size: 12px} 
.STYLE2 {font-size: 18px} 
--> 
</style> 
</head> 
<body> 

<table width="100%"  bgcolor="#cccccc"> 
<tr>
<?php echo $SQL; ?>
</tr>
<tr> 
<td width="42%" align="center" valign="middle"><span class="STYLE1"> <?php echo $page;?> / <?php echo $page_count;?> 页 </span></td> 
<td width="58%" height="28" align="left" valign="middle">
<span class="STYLE1">
<?php
echo "<a href=disp.php?page=1&idd=".$_GET["idd"].">首页</a>     ";  
if($page!=1){ 
    echo "<a href=disp.php?page=".($page-1)."&idd=".$_GET["idd"].">上一页</a>       "; 
} 
if($page<$page_count){ 
    echo "<a href=disp.php?page=".($page+1)."&idd=".$_GET["idd"].">下一页</a>       "; 
}
echo "<a href=disp.php?page=".$page_count."&idd=".$_GET["idd"].">尾页</a>    ";  
?> 
</span> </td> 
</tr> 
</table> 

<table width="100%"  bgcolor="#CCCCCC"> 
<tr> 
<td > 
<?php
echo substr($c1,strlen($c),strlen($c1)-strlen($c));
?>
</td> 
</tr> 
</table> 
<table width="100%"  bgcolor="#cccccc"> 
<tr> 
<td width="42%" align="center" valign="middle"><span class="STYLE1"> <?php echo $page;?> / <?php echo $page_count;?> 页 </span></td> 
<td width="58%" height="28" align="left" valign="middle">
<span class="STYLE1">
<?php
echo "<a href=disp.php?page=1&idd=".$_GET["idd"].">首页</a>        ";  
if($page!=1){ 
    echo "<a href=disp.php?page=".($page-1)."&idd=".$_GET["idd"].">上一页</a>        "; 
} 
if($page<$page_count){ 
    echo "<a href=disp.php?page=".($page+1)."&idd=".$_GET["idd"].">下一页</a>        "; 
}
echo "<a href=disp.php?page=".$page_count."&idd=".$_GET["idd"].">尾页</a>       ";  

?> 
</span> </td> 
</tr> 
</table> 
</body>


本文地址:http://jinesc.cn/?id=175
免责声明:本文为原创文章,版权归 jinesc 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?