PHP - SplFileObject пишет CSV в первой строке - PullRequest
0 голосов
/ 26 сентября 2019

Как я могу записать следующий массив в формате CSV в конкретную строку моего файла.Я использую PHP LimitIterator для извлечения части моего файла.

$fields = ['value_1', 'value_2', 'value_3'];
$fileObject = new SplFileObject('my/file/path', 'r+');
$fileObject->setFlags(
    SplFileObject::READ_CSV |
    SplFileObject::SKIP_EMPTY |
    SplFileObject::READ_AHEAD |
    SplFileObject::DROP_NEW_LINE
);
$fileObject->setCsvControl($delimiter, $enclosure);
$iterator = new LimitIterator($fileObject, 5, 100); // Get file content starting at line 5

foreach ($iterator as $index => $row) {
    if (3 === $index) {
        // ...
        // My business logic
        // ...

        // I wanna write at line 8 but actually right at the content at line 9
        $fileObject->seek($iterator->getPosition() - 1); // Retrieve the right position
        $fileObject->fputcsv($fields, $delimiter, $enclosure); // Write of the line after the seek().
    }
}

Кто-нибудь знает какой-либо метод?Я действительно застрял: O

...