PHP:获取下一整行和该行之后的文本


PHP: Getting next full line and text after that line

如果我有一个格式化为这样的文本文件:

00:00:00 Text 1
00:00:01 Text 2
00:00:02 Text 3
00:00:03 Text 4
00:00:04 Text 5
00:00:05 Text 6

如何创建一个PHP函数来获取从下一行开始的特定时间后的所有文本?

示例:指定时间00:00:03,从00:00:04获取所有行。

检查PHP函数:

  • fgets
  • substr

从本质上讲,你会想遵循这样一个过程:

  1. 指向包含文本的文件的打开文件指针
  2. 使用fgets一次拉一条线
  3. 使用substr获取时间,检查它是否匹配
  4. 如果不匹配,继续;如果匹配,则设置标志并继续
  5. 若已满足标志,那个么跳过子字符串检查,对数据执行一些操作(此时数据将是您所期望的)

这不是家庭作业什么的,是吗?

一种方法是读取文件,按换行符拆分,循环直到找到有问题的行,然后获取数组的其余部分,重新组合,返回。

当然,有很多方法可以做到这一点。

$contents = file_get_contents("/path/to/file.txt");
$lines = explode("'n",$contents);
for($i = 0; $i < count($lines); $i++) {
    $time = substr($lines[$i],0,8);
    if( $time == "00:00:03" ) {
        array_splice($lines, 0, $i+1) //removes 0 -- $i from $lines
        return implode("'n", $lines);
    }
}