Coleraine地区最好的CSV操作库

这个包的官方仓库似乎已经消失了,因此该包已经被冻结。

0.4.11 2022-12-15 16:16 UTC

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.';
}