php根据主机端的时间逐行读取txt文本

根据主机端的时间,第一个20秒,php输出显示txt文本的第一行,其他行都不显示
第二个20秒,输出显示txt文本的第二行,第一行和其他行都不显示
第三个20秒,输出显示txt文本的第三行,第一、二行和其他行都不显示
以此类推,所有行数都显示完一遍,重新循环
不知道该如何实现,望代码详解

php

3个回答

 $file_path = 'xxx.txt'; //文件路径  
$line = 0 ; //初始化行数  
//打开文件  
$fp = fopen($file_path , 'r') or die("open file failure!");  
if($fp){  
//获取文件的一行内容,注意:需要php5才支持该函数;  
while(stream_get_line($fp,8192,"\n")){  
   $line++;  
}  
fclose($fp);//关闭文件  
}  
for($n=0;$n<$line;$n++){
    $c = getLine($file_path, $n); // 读取a.txt文件第n行内容
    echo $c;
    sleep(20);
}



/**
 * 获取指定行内容
 *
 * @param $file 文件路径
 * @param $line 行数
 * @param $length 指定行返回内容长度
 */
function getLine($file, $line, $length = 4096){
    $returnTxt = null; // 初始化返回
    $i = 1; // 行数

    $handle = @fopen($file, "r");
    if ($handle) {
        while (!feof($handle)) {
            $buffer = fgets($handle, $length);
            if($line == $i) $returnTxt = $buffer;
            $i++;
        }
        fclose($handle);
    }
    return $returnTxt;
}

可以用JavaScript脚本实现,将文本全部显示在界面上,用定时器控制

是否显示,利用定时器次数取模循环遍历显示行,
需要设置一个最大次数然后,当到达最大值置为0重新开始,不然程序一直跑会有值情况。 主要的是减缓服务器压力。

应该由前端脚步实现的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐