jeroenzwart/ php-csv-iterator
一个简单的CSV读取器,使用PHP迭代器以数组/对象的形式读取
v1.0.3
2020-05-28 21:25 UTC
Requires
- php: >=7.3.0
Requires (Dev)
- phpmd/phpmd: dev-master
- phpunit/phpunit: 9
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-08-29 05:24:53 UTC
README
使用PHP迭代器的简单CSV读取器
此包是一种读取CSV文件的简单方法。CSV读取器将迭代CSV文件,内存使用量低。
特性
- 返回具有标题键的数组。
- 读取CSV文件中的特定行。
- 跳过空行。
- 以偏移量和/或限制读取CSV文件。
安装
通过Composer
$ composer require jeroenzwart/php-csv-iterator
用法
以下示例是CSV文件 ./csv/movies.csv 的一部分;
name,year_release,order,imdb_rating
Star Wars Episode I – The Phantom Menace,1999,1,6.5
Star Wars Episode II – Attack of the Clones,2002,2,6.5
要遍历CSV文件中的每个项目,请按如下方式使用读取器;
$csv = new \JeroenZwart\CsvIterator\CsvReader('../csv/movies.csv'); $csv->delimiter('"') foreach ($csv as $line) { var_dump($line) // Or do something with $line... } // The first dump will look like this // class stdClass(4) { // public 'name' => string(42) "Star Wars Episode I – The Phantom Menace" // public 'year_release' => string(4) "1999" // public 'order' => string(1) "1" // public 'imdb_rating' => string(3) "6.5" // }
或使用默认迭代器方法之一;
$csv = new \JeroenZwart\CsvIterator\CsvReader('../csv/movies.csv'); $line = $csv->next()->current();
选项
filePath
(字符串) - CSV文件的路径。offset
(整数 0) - 从CSV文件开始读取的偏移量。limit
(整数 -1) - 读取CSV文件结束的限制。delimiter
(字符串 ,) - CSV文件中的分隔符字符。enclosure
(字符串 ") - CSV文件中的封装字符。escape
(字符串 \) - CSV文件中的转义字符。hasHeaders
(布尔值 TRUE) - 设置CSV文件是否有标题,如果没有,则设置为FALSE。asObject
(布尔值 TRUE) - 将CSV文件的行作为对象返回,设置为FALSE作为数组。keepEmptyLines
(布尔值 FALSE) - 设置为TRUE以保留CSV文件中的空行。
示例
偏移量和限制
使用偏移量和限制从另一个位置开始读取;
$csv = new CsvReader('../csv/actors.csv', 3, 5); foreach ($csv as $line) { // Do something with $line... }
分隔符、封装和转义
使用不同的分隔符、封装和转义读取;
$csv = new CsvReader('../csv/actors.csv'); $csv->delimiter(';')->enclose('`')->escape(''); foreach ($csv as $line) { // Do something with $line... }
要获取当前的分隔符、封装或转义,请使用 $csv->delimiter()
标题、asObject和空
忽略CSV文件中的标题并返回具有常规键的数组,但保留空行;
$csv = new CsvReader('../csv/actors.csv'); $csv->headers(false)->asObject(false)->empty(true); foreach ($csv as $line) { // Do something with $line... }
要获取CSV文件的标题作为数组,请使用 $csv->headers()
。要获取设置asObject或空的模式,可以使用 $csv->asObject()
或 $csv->empty()
。
位置
加载给定位置的一行;
$csv = new CsvReader('../csv/actors.csv'); var_dump($csv->position(3));
要获取迭代器的当前位置,请使用 $csv->position()
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
许可证
请参阅许可证文件以获取更多信息。