使用PHP从某一行开始读取.txt文件

使用PHP从某一行开始读取.txt文件,php,Php,我知道可能有很多问题与此相关,但我读了其中大部分,仍然不知道如何做到这一点 假设我有一个特定的.txt文件,每一行都是聊天日志的一部分 我要做的是检索文件的行,从第x行开始到最后。因此,如果我有x=450,我想获得行450->eof()。我曾经尝试过使用和其他函数,但我总是被文件中的“要读取的字节数”所困扰。我怎么知道一行占用的字节数,因为它们彼此都不同 每行以\n分隔,文件可能有+500.000行 然后我需要处理每个提取的行,然后从这里开始 这是一个模式 因为每行的宽度都是可变的,所以唯一的方

我知道可能有很多问题与此相关,但我读了其中大部分,仍然不知道如何做到这一点

假设我有一个特定的.txt文件,每一行都是聊天日志的一部分

我要做的是检索文件的行,从第x行开始到最后。因此,如果我有x=450,我想获得行450->eof()。我曾经尝试过使用和其他函数,但我总是被文件中的“要读取的字节数”所困扰。我怎么知道一行占用的字节数,因为它们彼此都不同

每行以\n分隔,文件可能有+500.000行

然后我需要处理每个提取的行,然后从这里开始

这是一个模式


因为每行的宽度都是可变的,所以唯一的方法是从文件的开头开始读取,跳过不需要的前N行

我的PHP非常生疏,但它会像这样运行(并且可以随意编辑代码以更正任何语法错误)

如果需要,可以将
while
修改为在到达文件末尾或达到所需的最大行号时结束,如:

while($line = fread($in) && $lineNr < 550) {
while($line=fread($in)&&$lineNr<550){

你一针见血。你必须逐行进行,因为你不知道一条线上有多少信息。你可以使用。你可以省略长度参数。@ THEDIOTHEGER,即使每行都被“\n”分隔开,并且保证在内容中间没有“\n”。@ USER 338 5828计算机不会用“行”存储东西。.那是人类的构造。
$lineNr = 1;
$in = fopen('file.txt', 'rb');
while($line = fread($in)) {
    if ($lineNr >= 450) { 
       // Use the line
    }
    $lineNr++;
}
while($line = fread($in) && $lineNr < 550) {