jabranr / csv-parser
Parse CSV data from a file, stream or string
Installs: 22 416
Dependents: 2
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 6
Open Issues: 5
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6.0|^7.0
README
PHP client to parse CSV data from a path, file, stream, resource or string into indexed or associative arrays.
Migration from v2 to v3
PHP support updated to 7+
Install
Install using composer
#composer.json { "require": { "jabranr/csv-parser": "^3.0" } }
Run following to install
$ comsposer install
Use
Initiate a new instance
$csv = new Jabran\CSV_Parser();
Unit tests
If you have composer
installed globally then:
Run unit tests
$ cd path/to/csv-parser
$ composer run tests
If you have phpunit
installed globally then:
$ cd path/to/csv-parser
$ phpunit
API
Get data from a string
/* @param: string $str */ $csv->fromString($str);
Get data from a resource (Since v2.0.2)
/* @param: resource $resource (f.e. resource created using fopen()) */ $csv->fromResource($resource);
Get data from a path/URL (Since v2.0.2)
/* @param: string $path */ $csv->fromPath($path);
Parse data for output
/** * Set $headers true/false to include top/first row * and output an associative array * * @param: boolean $headers (Default: true) * @return: array */ $csv->parse($headers);
More useful methods (Since v2.0.2)
/** * Set columns * @param array $columns * @return Jabran\CSV_Parser */ $csv->setColumns($columns); /** * Set rows * @param array $rows * @return Jabran\CSV_Parser */ $csv->setRows($rows); /** * Set headers * @param array $headers * @return Jabran\CSV_Parser */ $csv->setHeaders($headers); /** * Get columns * @return array */ $csv->getColumns(); /** * Get rows * @return array */ $csv->getRows(); /** * Get headers * @return array */ $csv->getHeaders();
Example
Example input string
require 'path/to/vendor/autoload.php'; $csv = new Jabran\CSV_Parser; $str = 'id,first_name,last_name;1,Jabran,Rafique'; $csv->fromString($str); // Output with headers: $csv->parse(); Array( [id] => 1, [first_name] => 'Jabran', [last_name] => 'Rafique' ) // Output without headers: $csv->parse(false); Array( [0] => array( [0] => 'id', [1] => 'first_name', [2] => 'last_name' ), [1] => array( [0] => 1, [1] => 'Jabran', [2] => 'Rafique' ) )
License
© 2015 onwards
MIT License - Jabran Rafique