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
Clone this repository and init the workspace with following command:
git clone https://github.com/keboola/php-csv.git
cd php-csv
docker-compose build
docker-compose run --rm dev composer install --no-scripts
Run the test suite using this command:
docker-compose run --rm dev composer tests
MIT licensed, see LICENSE file.