02.03.2016

Достаточно часто возникает потребность в работе с файлами формата csv. По этой причине разберем работу средствами Битрикс. Класс CCSVData нам поможет в этом

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/csv_data.php");
$csvFile = new CCSVData('R', true);
$csvFile->LoadFile($_SERVER["DOCUMENT_ROOT"]."/файл.csv");
$bFirstHeaderTmp = $csvFile->GetFirstHeader();
$csvFile->SetDelimiter(',');
while ($arRes = $csvFile->Fetch()) {

}

Таким образом выглядит код работы. От этого шаблона уже будет легко оттолкнуться. Пройдемся по коду:

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/csv_data.php");

Тут все достаточно просто: подключаем библиотеку.

$csvFile = new CCSVData('R', true);

Далее определяем объект класса. Первый параметр определяет будет ли использоваться разделитель (R) или используются фиксированные поля (F). Второй параметр определяет, будет ли первой строкой файла описание полей файла (заголовки). По умолчанию значения параметров определены как "R" и "false"

$csvFile->LoadFile($_SERVER["DOCUMENT_ROOT"]."/файл.csv");

Указываем файл для работы.

$bFirstHeaderTmp = $csvFile->GetFirstHeader(); $csvFile->SetDelimiter(',');

Получаем заголовки и устанавливаем разделитель. Стоит отметить, что разделителем могут быть такие варианты значений как: пробел, точка с запятой, запятая или табуляция.

while ($arRes = $csvFile->Fetch()) { }

Далее уже производим действия с нашими данными.

Отдельное внимание стоит обратить, что описание методов и функций класса CCSVData отсутствует в документации api_help.


Возврат к списку

Спасибо. Ваше сообщение было успешно отправлено.
Mы свяжемся с Вами в ближайшее время.