yogarine / csv-utils
CSV utils by Yogarine
Installs: 56 708
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: >=4.0.0
README
This library currently contains the CsvFile class, which makes it easy to iterate through CSV files of any size and makeup.
Installation
composer require "yogarine/csv-utils:^1.0"
CsvFile
The CsvFile class makes it easy to iterate through CSV files of any size. It
implements Iterator
and SeekableIterator
so you can easily loop through
the CSV using foreach
:
Usage
Let's say you have a file called foo.csv
with the following content:
id,name,description
0,foo,"This is a Foo"
1,bar,"This is a Bar"
2,baz,"This is a Baz"
3,qux,"This is a Qux"
You can iterate through it like this:
$csvFile = new CsvFile('foo.csv'); foreach ($csvFile as $row) { $id = $row['id']; $name = $row['name']; $description = $row['description']; }
No header row
If your CSV doesn't have a header row:
0,foo,"This is a Foo"
1,bar,"This is a Bar"
2,baz,"This is a Baz"
3,qux,"This is a Qux"
Use the $headerRow
argument to omit it:
$csvFile = new CsvFile('foo.csv', CsvFile::HEADER_ROW_NONE); foreach ($csvFile as $row) { list($id, $name, $description) = $row; }
Other formats
Other formats, like PSV or TSV are also supported:
id|name|description
0|foo|"This is a Foo"
1|bar|"This is a Bar"
2|baz|"This is a Baz"
3|qux|"This is a Qux"
$csvFile = new CsvFile('foo.csv', 0, '|');