keboola / csv
Keboola CSV reader and writer
Installs: 1 497 620
Dependents: 26
Suggesters: 0
Security: 0
Stars: 135
Watchers: 22
Forks: 35
Open Issues: 6
Requires
- php: >=7.4
Requires (Dev)
- ext-json: *
- keboola/coding-standard: ^15.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpdoc-parser: ^1.25
- phpstan/phpstan: ^1.10
- phpunit/phpunit: >=7.5 <=9.6
This package is auto-updated.
Last update: 2024-10-16 13:49:54 UTC
README
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.
Usage
Read CSV
$csvFile = new Keboola\Csv\CsvReader(__DIR__ . '/_data/test-input.csv'); foreach($csvFile as $row) { var_dump($row); }
Skip lines
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); }
Write CSV
$csvFile = new Keboola\Csv\CsvWriter(__DIR__ . '/_data/test-output.csv'); $rows = [ [ 'col1', 'col2', ], [ 'first column', 'second column', ], ]; foreach ($rows as $row) { $csvFile->writeRow($row); }
Append to CSV
$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);
Write CSV With Windows new-lines
$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); }
Installation
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
Development
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
License
MIT licensed, see LICENSE file.