Разработка сайтов

Переименовать все фото в каталоге Битрикс

Проблема: если в названии изображения есть пробелы в письмах такие изображения не будут отображаться т.к. почтовики заменяют пробелы на плюсы Решение: Мы написали скрипт который переименовывает все фотки в каталоге и заменяет пробел на тире
$test = Bitrix\Main\FileTable::GetList();
$goods = CIBlockElement::GetList('', array('IBLOCK_ID' => 7));
$arPics = [];
while($p = $goods->fetch()){
    $pic = CFile::getById($p['DETAIL_PICTURE'])->fetch();
    //var_dump($pic);
    $arPics[$p['ID']] = ['ID' => $p['DETAIL_PICTURE'],'NAME' => $pic['FILE_NAME'], 'DIR' => $pic['SUBDIR']];

}
foreach($arPics as $key => $arPic){
    if(stripos($arPic['NAME'], ' ') != false){
        $arPic['NAME'] = str_replace(" ", "-", $arPic['NAME']);
        //COPYFILE
		$newPic = CFile::CopyFile($arPic['ID'], false, $arPic['DIR'].'/'.$arPic['NAME']);
        //update элемента
        $upd = new CIBlockElement;
		$upd->Update($key, array('DETAIL_PICTURE' => CFile::MakeFileArray('/upload/'.$arPic['DIR'].'/'.$arPic['NAME'])));
        //удаление старых файлов
		CFile::Delete($arPic['ID']);
    }
}
Подписка на блог Подпишись на новые материалы от US STUDIO и вы не пропустите интересные статьи от нашей компании