Все,
Я не могу ради своей жизни понять, почему \SplFileObject
повторяет ключ в следующем коде. Этот образец использует Nowdoc в качестве файлового потока, но этот эффект можно заметить, используя любой файл.
PHP-код:
$str = <<<'EOD'
Line 1
Line 2
Line 3
Line 4
Line 5
EOD;
$file = new \SplFileObject('data://text/plain;base64,' . base64_encode($str));
$iterator = call_user_func(function (\SplFileObject $file) {
while (!$file->eof()) {
yield [$file->key() => $file->fgets()];
}
}, $file);
foreach ($iterator as $line) {
echo key($line) . ': ' . current($line) . PHP_EOL;
}
Выход:
0: Line 1
0: Line 2
1: Line 3
2: Line 4
3: Line 5
Задача ещё не решена.
Других решений пока нет …