<?php
$flags = [
'READ_AHEAD' => SplFileObject::READ_AHEAD,
'READ_AHEAD | DROP_NEW_LINE' => SplFileObject::READ_AHEAD | SplFileObject::DROP_NEW_LINE,
'READ_AHEAD | SKIP_EMPTY' => SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY,
'READ_AHEAD | SKIP_EMPTY | DROP_NEW_LINE' => SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE,
];
$file = new SplTempFileObject();
$file->fwrite("1\n\n3\n");
foreach ([SplFileObject::READ_AHEAD, 0] as $readAhead) {
foreach ([SplFileObject::SKIP_EMPTY, 0] as $skipEmpty) {
foreach ([SplFileObject::DROP_NEW_LINE, 0] as $dropNewLine) {
$file->rewind();
$file->setFlags(
SplFileObject::READ_CSV | $readAhead | $skipEmpty | $dropNewLine
);
printf(
" %s | %s | %s | %s\n", // SKIP_EMPTY
$readAhead ? 'READ_AHEAD' : ' ',
$skipEmpty ? 'SKIP_EMPTY' : ' ',
// DROP_NEW_LINE
$dropNewLine ? 'DROP_NEW_LINE' : ' ',
json_encode(array_values(iterator_to_array($file)))
);
}
}
}
preferences:
28.88 ms | 402 KiB | 5 Q