plumphp / plum-csv
PlumCsv 包含用于 Plum 的 CSV 读取器和写入器。Plum 是一个 PHP 数据处理管道。
Requires
- php: >=5.4
- league/csv: ~6.3
- plumphp/plum: ~0.2
Requires (Dev)
- mikey179/vfsstream: ~1.4
- phpunit/phpunit: ~4.3
README
PlumCsv 包含用于 Plum 的 CSV 读取器和写入器。Plum 是一个 PHP 数据处理管道。
由欧洲维也纳的 Florian Eckerstorfer 开发Florian Eckerstorfer。
安装
您可以使用 Composer 安装 Plum。
$ composer require plumphp/plum-csv
使用方法
有关 Plum 的详细信息,请参阅Plum 文档。
目前,PlumCsv 包含 CSV 文件的读取器和写入器,并使用 League\CSV 来实际读取和写入 CSV 文件。
CsvReader
您可以使用 Plum\PlumCsv\CsvReader
从 .csv
文件中读取数据。
use Plum\PlumCsv\CsvReader; $reader = new CsvReader('countries.csv');
可选地,您还可以将分隔符和包装器传递给构造函数。
$reader = new CsvReader('countries.csv`, ',', '"');
大多数 CSV 文件都有标题行。由于 Plum 是逐行处理 CSV 文件,因此您需要添加 HeaderConverter
来更改每个读取项的索引。此外,您可以使用 SkipFirstFilter
跳过标题行。两者 HeaderConverter
和 SkipFirstFilter
都是核心 Plum 包的一部分。
use Plum\Plum\Converter\HeaderConverter; use Plum\Plum\Filter\SkipFirstFilter; $workflow = new Workflow(); $workflow->addConverter(new HeaderConverter()); $workflow->addFilter(new SkipFirstFilter(1)); $reader = new CsvReader('countries.csv`, ',', '"');
CsvWriter
Plum\PlumCsv\CsvWriter
允许您将数据写入 .csv
文件。
use Plum\PlumCsv\CsvWriter; $writer = new CsvWriter('foobar.csv', ',', '"'); $writer->prepare(); $writer->writeItem(['value 1', 'value 2', 'value 3'); $writer->finish();
__construct()
的第二个和第三个参数是可选的,默认分别为 ,
和 "
。此外,您可以使用 setHeader()
方法定义列名。必须在 prepare()
之前调用它。
$writer = new CsvWriter('foobar.csv'); $writer->setHeader(['column 1', 'column 2', 'column 3']); $writer->prepare();
当您动态读取数据时,可能不想手动设置标题列。您可以通过调用 autoDetectHeader()
使用写入到 CsvWriter
的第一个项目的数组键作为标题。
$writer = new CsvWriter('foobar.csv'); $writer->autoDetectHeader(); // Must be called before the first `writeItem()`
如果您需要进一步配置写入器,您可以向 Plum\PlumCsv\CsvWriter
注入 League\Csv\Writer
的实例。
use Plum\PlumCsv\CsvWriter; use League\Csv\Writer; $csv = Writer::createFromFileObject(new SplFileObject('countries.csv', 'w')); $csv->setNullHandlingMode(Writer::NULL_AS_EMPTY); $writer = new CsvWriter($csv);
变更日志
版本 0.4 (2015 年 10 月 28 日)
- 在自动设置标题前检查项目是否为数组
- #10 允许注入
League\Csv\Writer
版本 0.3.1 (2015 年 4 月 28 日)
- 修复 Plum 版本
版本 0.3 (2015 年 4 月 22 日)
- 添加对 ReaderFactory 的支持
版本 0.2 (2015 年 4 月 21 日)
- 修复 Plum 版本
版本 0.1 (2015 年 3 月 24 日)
- 首次发布
许可
MIT 许可证适用于 plumphp/plum.json。有关完整的版权和许可信息,请查看与此源代码一起分发的 LICENSE 文件。