Подойдет для загрузки небольших данных. Для больших файлов не пойдет, процесс зависнет (не хватит времени на выполнение скрипта) есть еще другой пример, который на стороне клиента читает и на стороне сервера построчно добавляет |
<?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> |