- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/internals/dataexport.php
- Класс: Bitrix\Sender\Internals\DataExport
- Вызов: DataExport::toCsv
static function toCsv(array $columns, $list, $rowCallback = null)
{
self::flushHeaders();
$eol = "\n";
$columnNames = [];
$isFirstLinePrinted = false;
if (defined('BX_UTF') && BX_UTF)
{
echo chr(239) . chr(187) . chr(191);
}
foreach ($list as $item)
{
if ($rowCallback)
{
$item = call_user_func_array($rowCallback, [$item]);
}
$row = [];
foreach ($columns as $column)
{
if (!array_key_exists($column['id'], $item))
{
continue;
}
if (!$isFirstLinePrinted)
{
$columnNames[] = str_replace('"', '""', $column['name']);
}
$row[] = str_replace('"', '""', trim($item[$column['id']]));
}
if (!$isFirstLinePrinted)
{
echo '"' . implode('";"', $columnNames) . '"';
$isFirstLinePrinted = true;
}
echo $eol;
echo '"' . implode('";"', $row) . '"';
}
exit;
}