Добавить файл в свойство типа файл

Иногда в Битриксе надо перенести, например, картинки из контента в свойство дополнительные фотографии. В ручную это делать конечно же не хочется, особенно если очень много товаров, по этому напишем скрипт для этого.
Сначала вытащим все картинки из контента:

$img = array();
 preg_match_all('/]*?)?\\bsrc\\s*=\\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>\'"\\s]*))[^<>]*>/i', $item['DETAIL_TEXT'], $img); //Собираем все картинки   

Обновляем нашу запись и добавляем картинки

foreach ($imgs[1] as $img) {
    $file = CFile::MakeFileArray($img); 
    $el = new CIBlockElement;
    $arLoadProductArray = Array("PROPERTY_VALUES" => array("MORE_PHOTO" => $file));
    $res = $el->Update($item['ID'], $arLoadProductArray);

}

Теперь осталось вырезать картинки из текста и всё!

$new_detail_text = preg_replace('~(]*>)?]*>()?~i', '', $item['DETAIL_TEXT']);//Вырезаем картинки из описания

$el = new CIBlockElement;
$arLoadProductArray = Array("DETAIL_TEXT" => $new_detail_text); //Заменяем текст на новый
$res = $el->Update($item['ID'], $arLoadProductArray); //Обновляем запись   

Продолжая использовать веб- сайт beta-code.ru, вы даете согласие на обработку файлов cookie, пользовательских данных (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес) в целях функционирования сайта, проведения ретаргетинга и проведения статистических исследований и обзоров. Если вы не хотите, чтобы указанные данные обрабатывались, покиньте сайт.
Принять