spatialest / csv
Coleraine地区最好的CSV操作库
这个包的官方仓库似乎已经消失了,因此该包已经被冻结。
0.4.11
2022-12-15 16:16 UTC
Requires
- php: >=7.4
- ext-iconv: *
- ext-mbstring: *
- castor/io: ^0.2.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.2
- vimeo/psalm: ^4.6
README
Spatialest制作的最佳CSV解析
安装
composer require spatialest/csv
它做什么?
这个库实现了一个符合RFC 4180的CSV解析器。解析器直接从Golang标准库中的csv.Reader
结构移植而来。
它可以读取任何实现了Spatialest\Csv\Io\Reader
接口的数据源中的csv。
特性
- 移除UTF字节顺序标记
- 通过移除换行符来规范化行
- 正确处理引号字段中的换行符(
fgetcsv
不这样做) - 提供行、记录和列编号的错误
- 在解析错误和列不匹配错误之间提供区分
- 提供有用的迭代原语
基本用法
您只需从文件创建一个Spatialest\Csv\RFC4180\Reader
,然后迭代所有记录。
use Spatialest\Csv\Io\HttpGet; use Spatialest\Csv\RFC4180\Reader; $reader = Reader::fromReader(HttpGet::request('https://data.wprdc.org/datastore/dump/5bbe6c55-bce6-4edb-9d04-68edeb6bf7b1')); $iterator = $reader->getIterator(); foreach ($reader as $record) { fwrite(STDOUT, json_encode($record, JSON_THROW_ON_ERROR).PHP_EOL); } if ($iterator->hasErrors()) { echo 'DANGER: There are '.count($iterator->getErrors()).' errors.'; }