I have data file with two lines (two lines just for my example, in real, that file can contain millions of lines) and I use SplFileObject and LimitIterator with offseting. But this combination have strange behaviour in some cases:
$offset = 0;
$file = new \SplFileObject($filePath);
$fileIterator = new \LimitIterator($file, $offset, 100);
foreach ($fileIterator as $key => $line) {
echo $key;
}
Output is: 01
But with $offset set to 1, output is blank (foreach doesn't iterate any line).
My data file contain this:
{"generatedAt":1434665322,"numRecords":"1}
{"id":"215255","code":"NB000110"}
What I'm doing wrong?
Thanks
Required:
Use
SplFileObjectto process a number of records from:EOF.The issue is that
SplFileObjectgets confused as regards thelast recordin the file. This prevents it working correctly inforeachloops.This code uses the
SplFileObjectand 'skip records' and 'processes records'. Alas, It cannot useforeachloops.$offset).$recordsToProccess)The code: