symfony — PHP league / csv Reader Как узнать, какой разделитель использовался?

При использовании 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 (). Получить значения по умолчанию тоже.

1

Решение

Если вы используете последнюю версию библиотеки, вы можете просто использовать Читатель :: fetchDelimitersOccurrence как объяснено в документации. Но имейте в виду, что метод будет возвращать только информацию о предлагаемых вами разделителях. Потому что метод не может знать, какой разделитель используется. Результатом является только подсказка, которую должен подтвердить поставщик CSV.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]