Пример скрипта экспорта каталога
$arSelect = [
'ID', 'IBLOCK_ID','IBLOCK_CODE','IBLOCK_SECTION_ID','NAME', 'LIST_PAGE_URL', 'DETAIL_TEXT', 'DETAIL_PICTURE', 'DETAIL_PAGE_URL', 'SECTION_PAGE_URL',
'PROPERTY_CML2_ARTICLE','PROPERTY_MODEL','PROPERTY_BRAND', 'PROPERTY_GABARITY_VKHSHKHG_SM'
];
$arFilter = Array(
"IBLOCK_ID"=> $iblockId,
'!IBLOCK_SECTION_ID' => SECTION_NEMATRITSA_ID,
"PROPERTY_COPY_PROPERTIES" => 1,
);
$res = \CIBlockElement::GetList(Array('IBLOCK_SECTION_ID'=>'ASC', 'PROPERT_BRAND_VALUE' => 'ASC'), $arFilter, false, false, $arSelect);
$arElements = [];
$i = 0;
while($ob = $res->GetNextElement()) {
$fields = $ob->GetFields();
$fields['PRODUCT_INFO'] = CCatalogProduct::GetByID($fields['ID']);
if ($fields["~DETAIL_PICTURE"] != null) {
$resizeImage = CFile::ResizeImageGet(
$fields["~DETAIL_PICTURE"],
array("width" => 150, "height" => 150),
BX_RESIZE_IMAGE_PROPORTIONAL,
true
);
if (!$resizeImage) {
$fields['DETAIL_PICTURE'] = '/local/templates/eshop_bootstrap_black/components/bitrix/catalog.element/.default/images/no_photo.png';
} else {
$fields['DETAIL_PICTURE'] = $resizeImage['src'];
}
$fields['IMAGE_PATH'] = $_SERVER["DOCUMENT_ROOT"] . $fields['DETAIL_PICTURE'];
} else {
$fields['IMAGE_PATH'] = $_SERVER["DOCUMENT_ROOT"] . '/local/templates/eshop_bootstrap_black/components/bitrix/catalog.element/quick-view/images/no_photo.png';
}
$arElements[] = $fields;
file_put_contents('test.csv', $fields['IMAGE_PATH'] . "\r\n", FILE_APPEND);
$i++;
}
проблема проявляется при записи в файл, изнчально используется PHPExcel, но также не работает функция file_put_content
При использовании file_put_contents функция перестает записывать данные в файл примерно на 3000 - 4000 строке, причем последняя строка каждый раз разная, всего в каталоге 7300 элементов
цикл отрабатывает полностью, но в файл данные перестают записываться, пробуем убирать из скрипта кусок кода:
$resizeImage = CFile::ResizeImageGet(
$fields["~DETAIL_PICTURE"],
array("width" => 150, "height" => 150),
BX_RESIZE_IMAGE_PROPORTIONAL,
true
);
и все прекрасно работает данные в файл пишутся, а с CFile::ResizeImageGet просто перестает писать в файл (file_put_contetns возвращает false)
подскажите в чем может быть проблема, из-за чего при использовании CFile::ResizeImageGet может перестать работать file_put_contents
CentOS, php 7.0, веб окружение битрикс.
В логах ошибок нет.