萌新项目人 2018-02-02 02:10 采纳率: 100%
浏览 830
已采纳

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

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

  • 写回答

3条回答 默认 最新

  • 子幽 2018-02-02 03:09
    关注
     $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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?