jwage / easy-csv
Easy CSV manipulation for PHP 5.4+
Installs: 427 807
Dependents: 5
Suggesters: 0
Security: 0
Stars: 253
Watchers: 12
Forks: 58
Open Issues: 7
Requires
- php: ^7.2
Requires (Dev)
- doctrine/coding-standard: ^6.0
- phpstan/phpstan: ^0.11.5
- phpstan/phpstan-strict-rules: ^0.11.0
- phpunit/phpunit: ^8.1
README
EasyCSV is a simple Object Oriented CSV manipulation library for PHP 7.2+
Installation
Install via composer:
composer require jwage/easy-csv
Reader
To read CSV files we need to instantiate the EasyCSV reader class:
$reader = new \EasyCSV\Reader('read.csv');
You can iterate over the rows one at a time:
while ($row = $reader->getRow()) { print_r($row); }
Or you can get everything all at once:
print_r($reader->getAll());
If you have a file with the header in a different line:
// our headers aren't on the first line $reader = new \EasyCSV\Reader('read.csv', 'r+', false); // zero-based index, so this is line 4 $reader->setHeaderLine(3);
Advance to a different line:
$reader->advanceTo(6);
More in the Reader unit test.
Writer
To write CSV files we need to instantiate the EasyCSV writer class:
$writer = new \EasyCSV\Writer('write.csv');
You can write a row by passing a commas separated string:
$writer->writeRow('column1, column2, column3');
Or you can pass an array:
$writer->writeRow(array('column1', 'column2', 'column3'));
You can also write several rows at once:
$writer->writeFromArray(array( 'value1, value2, value3', array('value1', 'value2', 'value3') ));