require_once ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php");
$csvFile = new CCSVData('R', true);
$csvFile->LoadFile($_SERVER["DOCUMENT_ROOT"] . '/upload/min.csv');//Файл
$csvFile->SetDelimiter('\t'); //разделитель
$bFirstHeaderTmp = $csvFile->GetFirstHeader(); //Заголовок
while ($arRes = $csvFile->Fetch()) { //Перебор CSV файла по полям
$arRes = $GLOBALS["APPLICATION"]->ConvertCharsetArray($arRes, "WINDOWS-1251", SITE_CHARSET);
echo '<pre>';
print_r($arRes);
echo '</pre>';
}
Собственно этот код выдаст такой результат для одного из полей:
Array
(
[0] => TRANSMASTER UNIVERSAL 45100I Труба гофрированная универсальная 45X100 ШТУКА 1 336,9 4
)
Т.е получается что табуляция между данными не распознана, так как ожидаемый результат должен быть такой для одной из позиций:
Array
(
[0]=>TRANSMASTER UNIVERSAL
[1]=>45230I
[2]=>Труба гофрированная универсальная 45X230
[3]=>ШТУКА
[4]=>1
[5]=>616,83
[6]=>8
)
Если этот файл сохранить любым редактором с разделителем к примеру ',' - и изменить в коде разделитель, тогда всё отработает как надо. Если иходный файл опять сохранить с разделителем табуляция и внести изменения в код, тогда снова код отрабатывает не верно.
Собственно в чём загвозда?