Создаем сайты

которые продают

Битрикс - очистка таблицы B_file

17.01.2021
Здравствуйте! Сегодня я расскажу вам как очистить битые ссылки на изображения в 1С-Битрикс

В прошлой статье мы рассматривали как почистить от мусора папку upload, в этом расскажу как очистить таблицу b_file от битых ссылок на изображения и прочие файлы. 

Для чего это нужно? 

На практике столкнулся с задачей, когда при восстановлении сайта из битого бэкапа, около 30% папки upload потерялось. На сайте, где больше миллиона товаров это порядка 300 000 битых ссылок.
Все изображения загруженные в инфоблоки хранятся в таблице b_file, скрипт пройдется по папке /upload/iblock/ и удалит записи в таблице ссылок на изображения, которых больше не существует!
 
Вот как они выглядят:

После выполнения скрипта, который расположен ниже вместо битых ссылок появилась заглушка


Так намного лучше, правда?

Скрипт для очистки таблицы b_file

Можно скачать скрипт и загрузить его в корень сайта, открыв в браузере: ваш-сайт/clear-b-file.php

Количество скачиваний:



Или выполнить скрипт в командной php-строке 1С-Битрикс, которую можно найти:

Настройки > Настройки продукта > Инструменты > Командная PHP строка:

$oRes = \CFile::GetList(['ID' => 'ASC']);
while ($arFile = $oRes->Fetch()) {
$sPath = $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $arFile['SUBDIR'] . '/' . $arFile['FILE_NAME'];
if (!file_exists($sPath)) {
\CFile::Delete($arFile['ID']);
}


Результат выполнения:


Остались вопросы?

Отправьте письмо

Воспользуйтесь формой обратной связи
или пришлите вопросы на нашу почту info@ar-studio.by
Задать вопрос в Телеграм

Бесплатная консульация

Вам ответит: Рапанович Андрей, руководитель веб-студии