我有一个文本文件,我想逐行阅读。对于每一行,我还需要下一行的值,所以我需要在当前行中读取下一行的内容。
我在这里阅读了很多答案,我可以通过foreach
循环来做到这一点,但它需要提前阅读整个文件。我正在寻找一些只能根据需要阅读的东西。
这是我到目前为止使用 SplFileObject 得到的结果。
$file = new \SplFileObject($textFile);
$lastNumber = 500;
while (!$file->eof()) {
$currentLine = $file->fgets();
$currentNumber = intval($currentLine);
$file->next();
if ($file->eof()) {
$nextNumber = intval($lastNumber);
} else {
$nextNumber = intval($file->fgets()) - 1;
}
echo $currentNumber . ', ' . $nextNumber . '<br>';
}
假设我有一个包含这样行的文本
0
100
200
300
400
我希望他们像这样打印出来
0, 99
100, 199
200, 299
300, 399
400, 500
但是我的代码每隔一行都跳过
0, 99
200, 299
400, 500
我的猜测是我的 while 循环和$file->next()
每个循环将行移动 1,这就是跳过的原因。但是没有next()
调用,我不知道如何获取下一行的值。我该如何解决?