Создаю правильные

и продающие сайты!

Пн - Пт 09:00 — 18:00 (МСК)

+375(29) 343-53-70

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

В прошлой статье мы рассматривали как почистить от мусора папку upload, в этом расскажу как очистить таблицу b_file от битых ссылок на изображения и прочие файлы. 
На практике столкнулся с задачей, когда при восстановлении сайта из битого бэкапа, около 30% папки upload потерялось. На сайте, где больше миллиона товаров это порядка 300 000 битых ссылок. 
Нам поможет простой скрипт:
$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']);
}
}



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