萌新项目人 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条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?