PHP league/csv Reader 如何知道使用了哪个分隔符?

问题描述 投票:0回答:2

使用 league/csv 读取 csv 文件时,如何知道使用了哪些 csv 控件来解析该文件?

我制作了不同的 csv 文件:

  • delimiter_colon.csv {从 Excel 导出,带冒号分隔符}
  • delimiter_tab.csv {从 Excel 导出,带有制表符分隔符}
  • delimiter_semicolon.csv {从 Excel 导出,带分号分隔符}
  • 等等...

使用时

use League\Csv\Reader;
...

//Read csv from path
$csvReader = Reader::createFromPath( $CSVFile->path );

//get the current delimiter ? Nope always the default one ...
$this->delimiter = $csvReader->getDelimiter();

编辑:我想知道当前读者使用了哪个分隔符。 不是 csv 文件本身的分隔符。

无论我使用什么文件来读取 csv,它总是给出“,”{coma} 所以我在这里问:

如何知道使用哪个分隔符/括弧来解析当前的 csv Reader?

我也尝试过使用 getIterator()。也获取默认值。

php symfony csv vendor vendors
2个回答
1
投票

如果您使用的是最新版本的库,您可以简单地使用 Reader::fetchDelimitersOccurrence,如文档中所述。但请注意,该方法只会返回有关您提供的建议分隔符的信息。因为该方法不可能知道正在使用哪个分隔符。结果只是一个提示,需要 CSV 提供商确认。


0
投票

从版本 9.7 开始,鼓励您使用

Info::getDelimiterStats

© www.soinside.com 2019 - 2024. All rights reserved.