The library provides a simple reader and writer for CSV files according to RFC4180.
The library is licensed under the MIT license. The library provides
classes CsvReader
and CsvWriter
for reading and writing CSV files. The classes are designed to be immutable
and minimalistic.
$csvFile = new Keboola\Csv\CsvReader(__DIR__ . '/_data/test-input.csv');
foreach($csvFile as $row) {
var_dump($row);
}
Skip the first line:
$csvFile = new \Keboola\Csv\CsvFile(
$fileName,
CsvFile::DEFAULT_DELIMITER,
CsvFile::DEFAULT_ENCLOSURE,
CsvFile::DEFAULT_ESCAPED_BY,
1
)
foreach($csvFile as $row) {
var_dump($row);
}
$csvFile = new Keboola\Csv\CsvWriter(__DIR__ . '/_data/test-output.csv');
$rows = [
[
'col1', 'col2',
],
[
'first column', 'second column',
],
];
foreach ($rows as $row) {
$csvFile->writeRow($row);
}
$fileName = __DIR__ . '/_data/test-output.csv';
$file = fopen($fileName, 'a');
$csvFile = new Keboola\Csv\CsvWriter($file);
$rows = [
[
'col1', 'col2',
],
[
'first column', 'second column',
],
];
foreach ($rows as $row) {
$csvFile->writeRow($row);
}
fclose($file);
$csvFile = new Keboola\Csv\CsvWriter(
'test-output.csv',
CsvWriter::DEFAULT_DELIMITER,
CsvWriter::DEFAULT_ENCLOSURE,
"\r\n"
)
$rows = [
[
'col1', 'col2',
],
[
'first column', 'second column',
],
];
foreach ($rows as $row) {
$csvFile->writeRow($row);
}
The library is available as composer package. To start using this library in your project follow these steps:
Install package:
composer require keboola/csv
Add autoloader in your bootstrap script:
require 'vendor/autoload.php';
Read more in Composer documentation