require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/csv_data.php";);
$csvFile = new CCSVData('R', true);
$csvFile->LoadFile($_FILES['csv']['tmp_name']);
$csvFile->SetDelimiter(',');
while ($arRes = $csvFile->Fetch()) {
ec($arRes);
}
Собственно: - подключаем файл класса работы с CSV - создаем объект класса, указываем, что будет использоваться разделитель (R, есть еще фикс.поля F), и первая строка содержит заголовки (true); можно не указывать эти параметры и задать отдельными методами
- загружаем файл - ставим делиметер, где допустимые параметры: \t (табуляция), запятая, пробел, точка с запятой. - бежим как при обычной выборке из базы (напомню, Fetch возвращает НЕ обработанные данные, а GetNext безопасные).
Спасибо, Анна. И правда, поспешил с выводами, не посмотрев код. Fetch это индивидуальный метод класса CCSVData, выводящий просто запись "как есть" из CSV-файла.
Семенцов Николай тут скорее надо спросить "поддерживает ли Битрикс работу с тяжелыми CSV". Не берусь сказать, не сталкивался. Знаю, что импорт каталога (и вроде импорт инфоблоков тоже) работает пошагово с CSV, и может работать с практически неограниченным количеством строк.
Born у вас изменились условия А (обновленное ядро) и изменились условия B (обновленная машина) дело за малым, теперь осталось только решить, что же именно тормозит A, B или A+B
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».