我有一个数据文件,其中有两行(这里只是为了举例,实际上该文件可能包含数百万行),我使用SplFileObject和LimitIterator进行偏移。但是在某些情况下,这种组合的行为很奇怪:
$offset = 0;
$file = new \SplFileObject($filePath);
$fileIterator = new \LimitIterator($file, $offset, 100);
foreach ($fileIterator as $key => $line) {
echo $key;
}
输出结果为:01
但是当$offset设置为1时,输出为空(foreach不会迭代任何行)。
我的数据文件包含以下内容:
{"generatedAt":1434665322,"numRecords":"1}
{"id":"215255","code":"NB000110"}
我做错了什么吗?
谢谢
foreach
循环处理。我认为这是一个“文件结束”处理的边缘情况,没有被正确处理。这个问题出在SplFileObject
上。 - Ryan Vincent