tpmanc / csvhelper
Helper class for working with CSV files
1.1.1
2016-08-17 09:41 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~5.3
This package is not auto-updated.
Last update: 2025-01-30 01:39:17 UTC
README
Helper class for working with CSV files.
Install via Composer
Run the following command
$ composer require tpmanc/csvhelper "*"
or add
$ "tpmanc/csvhelper": "*"
to the require section of your composer.json
file.
File reading
file.csv:
Russia;Moscow;
France;Paris;
Great Gritain;London;
use tpmanc\csvhelper\CsvHelper; ... CsvHelper::open('files/file.csv')->parse(function($line) { echo $line[0] . ': ' . $line[1]; });
Result:
Russia: Moscow
France: Paris
Great Gritain: London
Custom delimiter
file.csv:
Russia|Moscow|
France|Paris|
Great Gritain|London|
use tpmanc\csvhelper\CsvHelper; ... CsvHelper::open('files/file.csv')->delimiter('|')->parse(function($line) { echo $line[0] . ': ' . $line[1]; });
Result:
Russia: Moscow
France: Paris
Great Gritain: London
Change encoding
use tpmanc\csvhelper\CsvHelper; ... CsvHelper::open('files/file.csv')->encode('cp1251', 'utf-8')->parse(function($line) { echo $line[0] . ': ' . $line[1]; });
Offset and limit
file.csv:
Russia;Moscow;
France;Paris;
Great Gritain;London;
use tpmanc\csvhelper\CsvHelper; ... CsvHelper::open('files/file.csv')->offset(1)->limit(1)->parse(function($line) { echo $line[0] . ': ' . $line[1]; });
Result:
France: Paris
Using variables from the parent scope
file.csv:
Russia;Moscow;
France;Paris;
Great Gritain;London;
use tpmanc\csvhelper\CsvHelper; ... $lineCount = 0; $array = []; CsvHelper::open('files/file.csv')->parse(function($line) use(&$lineCount, &$array) { $lineCount++; $array[] = $line[0]; }); echo $lineCount; echo $array[0]; echo $array[1];
Result:
3
Russia
France
Create new file
use tpmanc\csvhelper\CsvHelper; ... $file = CsvHelper::create()->delimiter(';'); $file->encode('cp1251', 'utf-8'); // change encoding $file->addLine('1.;France;'); // add row to file by string $file->addLine([ 2, 'Germany' ]); // add row to file by array $file->save('./new-file.csv');