Обучаю битриксу программистов, интеграторов

Простой csv парсер

Подойдет для загрузки небольших данных.
Для больших файлов не пойдет, процесс зависнет (не хватит времени на выполнение скрипта)
есть еще другой пример, который на стороне клиента читает и на стороне сервера построчно добавляет

<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule('iblock');

$lines = file($_SERVER["DOCUMENT_ROOT"]."/upload/phones.csv");
?>
<table>
<?
$el = new CIBlockElement;
foreach ($lines as $line_num => $line) {
    if($line_num == 0) continue; //заголовок не загружаем
    //if($line_num>10) break; //для пробы первых 10

    $line = mb_convert_encoding($line, 'UTF-8','Windows-1251'); //кодировку настраиваем
    $arLine = explode(";", $line); //разделитель в файле, у меня точка с запятой
    $arProps = [
       1963 => $arLine[2], //тип вызова
       1964=> $arLine[3],//кто звонил
       1965 => $arLine[4],//на какой номер
       1966=>$arLine[5],//кому
       1967=>$arLine[6]//длительность       
    ];
    $arItem = [
       "NAME" => $line_num,
       "ACTIVE_FROM" => $arLine[0].' '.$arLine[1],
       "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
     "IBLOCK_ID"      => 233,
     "PROPERTY_VALUES"=> $arProps
    ];
    $el->Add($arItem);

    
    ?>
    <tr>
       <?foreach ($arLine as $td){?>
          <td><?=$td?></td>
       <?}?>
    </tr>
    <?
}
?>
</table>
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!