此包已被废弃且不再维护。未建议替代包。

文件功能。

0.4.0 2017-03-20 11:16 UTC

This package is not auto-updated.

Last update: 2022-08-20 15:48:55 UTC


README

使用 Composer 在您的项目中安装 BlackwoodSeven 文件库

composer require blackwoodseven/file

用法:CsvFileObject

use BlackwoodSeven\File\CsvFileObject;

$csvFile = new CsvFileObject('my-data.csv');
$data = iterator_to_array($csvFile);

$fields = $csvFile->getFields();
// or
$fields = array_keys(reset($data));

用法:AtomicTempFileObject

use BlackwoodSeven\File\AtomicTempFileObject;

$newFile = new AtomicTempFileObject('my-output.csv');
$newFile->putcsv($fields);

foreach ($data as $row) {
    $newFile->putcsv($row);
}

$newfile->persistOnClose();
unset($newfile);

用法:AtomicTempFileObjects

use BlackwoodSeven\File\CsvFileObject;
use BlackwoodSeven\File\AtomicTempFileObjects;

$inputFile = new CsvFileObject('my-input.csv');
$outputFiles = new AtomicTempFileObjects();

// Split a csv file into multiple files.
$outputFiles->splitCsvFile($inputFile, function (&$row) {
    // $row is by reference and can be modified.
    $row = mapTheRowAsIWantItToBe($row);

    // Return filename to use for the specific row.
    return 'my-output.' . $row['date'] . '.csv';
});

$outputFiles->persistOnClose();
unset($outputFiles);
use BlackwoodSeven\File\CsvFileObject;
use BlackwoodSeven\File\AtomicTempFileObjects;

$inputFile = new \SplFileObject('my-input.csv');
$outputFiles = new AtomicTempFileObjects();

// Split a file into two files containing odd and even lines.
$outputFiles->process($inputFile, function ($line, $lineNum, $input, $output) {
    $no = ($lineNum % 2);
    $fileName = 'my-output.' . ($no ? 'even' : 'odd') . '.txt';
    $file = $output->isFileOpen($fileName) ? $output->getFile($fileName) : $output->openFile($fileName);
    $file->fwrite($line);
});

$outputFiles->persistOnClose();
unset($outputFiles);