<?php
// Прописываем константы, чтобы скрипты DLE завелись
define('DATALIFEENGINE', true);
define('ROOT', __DIR__);
// Подключаем классы и данные к бд
include_once ROOT . '/engine/classes/mysql.php';
include_once ROOT . '/engine/data/dbconfig.php';
// Делаем выборку, выбираем только доп. поля
$sql_select = 'SELECT xfields FROM dle_post ORDER by id ASC;';
$db->query($sql_select);
// Подсчитываем файлы
$files = 0;
// Создаём массив с удалёнными файлами
$pictures = [];
// Название доп. поля
$xf_name = 'НАЗВАНИЕ ПОЛЯ';
// Проверяем каждую новость
while($row = $db->get_row()) {
// Распиливаем поля
$xfs = explode('||', $row['xfields']);
// Проверяем каждое поле
foreach($xfs as $x) {
// Снова распил
$xf = explode('|', $x);
// Проверям на нужное поле, название поля вписываем на латинице
if($xf[0] === $xf_name) {
// Пилим массив данных о изображениях и создаём новый, если в поле несколько изображений
$image_data = explode(',', $xf[1]);
// Разбираем каждое изображение в массиве изображений
foreach($image_data as $img) {
// Пилим данные об изображении в новый массив
$i_data = explode('|', $img);
// Создаём путь до картинки
$img_path = ROOT . '/uploads/posts/' . $i_data[0];
// Проверяем, есть ли такой файл на сервере
if (!file_exists($img_path)) {
// Если нет, значит сначала идёт описание к изображению. Заменяем переменную на новый путь
$img_path = ROOT . '/uploads/posts/' . $i_data[1];
}
// Проставляем правильно слеши и прочие неряшливости в пути к файлу
$img_path = realpath($img_path);
// Повторно проверяем, есть ли такой файл на сервере
if (file_exists($img_path)) {
// Если есть, то вносим в массив данных по удалённым изображений
$pictures[$img_path] = end($i_data);
// Пытаемся удалить файл с сервера
@unlink($img_path);
// Увеличиваем счётчик удалённых файлов
$files++;
}
// Разбираем изображение на пути
$path_info = pathinfo($img_path);
// Смотрим в какой папке лежит изображения и сохраняем путь в новую переменную
$img_dir = dirname(realpath($img_path));
// Путь до уменьшенной копии
$thumb_path = $img_dir . '/thumb/' . $path_info['basename'];
// Путь до средней копии
$medium_path = $img_dir . '/medium/' . $path_info['basename'];
// Проверяем, есть ли уменьшенная копия
if (file_exists($thumb_path)) {
// Если есть, то вносим в массив данных по удалённым изображений
$pictures[$thumb_path] = 'Уменьшенная копия';
// Пытаемся удалить файл с сервера
@unlink($thumb_path);
// Увеличиваем счётчик удалённых файлов
$files++;
}
// Проверяем, есть ли средняя копия
if (file_exists($medium_path)) {
// Если есть, то вносим в массив данных по удалённым изображений
$pictures[$medium_path] = 'Средняя копия';
// Пытаемся удалить файл с сервера
@unlink($medium_path);
// Увеличиваем счётчик удалённых файлов
$files++;
}
}
}
}
}
// Прощаемся с подключением бд
$db->free();
// Выводим статистику, сколько файлов удалено и каждое изображение на новой строке с размеров файла
echo "Удалено <b>{$files}</b> файлов.<br><b>Файлы</b>:<br><br>";
foreach ($pictures as $pic => $size) echo "Изображение {$pic} ({$size}) удалено!<br>";