• Модуль: translate
  • Путь к файлу: ~/bitrix/modules/translate/lib/controller/import/indexcsv.php
  • Класс: BitrixTranslateControllerImportIndexCsv
  • Вызов: IndexCsv::verifyCsvFile
private function verifyCsvFile(): bool
{
	$testDelimiters = [
		TranslateIOCsvFile::DELIMITER_TZP,
		TranslateIOCsvFile::DELIMITER_TAB,
		TranslateIOCsvFile::DELIMITER_ZPT,
	];
	foreach ($testDelimiters as $delimiter)
	{
		$this->csvFile->setFieldDelimiter($delimiter);

		$this->csvFile->moveFirst();
		$rowHead = $this->csvFile->fetch();
		if (
			!is_array($rowHead) ||
			empty($rowHead) ||
			empty($rowHead[0]) ||
			(count($rowHead) < 3)
		)
		{
			continue;
		}

		break;
	}

	if (
		!is_array($rowHead) ||
		empty($rowHead) ||
		empty($rowHead[0]) ||
		(count($rowHead) < 3)
	)
	{
		return false;
	}

	$this->languageList = self::$enabledLanguages;
	$this->columnList = array_flip($rowHead);
	foreach ($this->languageList as $keyLang => $langID)
	{
		if (!isset($this->columnList[$langID]))
		{
			unset($this->languageList[$keyLang]);
		}
	}
	if (!isset($this->columnList['file']))
	{
		return false;
	}

	return true;
}