getSize(); } } return $size; } // Функция для подсчета количества файлов в директории function getFileCount($dir) { $count = 0; if (is_dir($dir)) { foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)) as $file) { if ($file->isFile()) { $count++; } } } return $count; } // Определяем абсолютные пути к директориям кэша для расчета статистики $cache_images_dir = __DIR__ . '/cache/images/'; $cache_meta_dir = __DIR__ . '/cache/meta/'; // Расчет размера кэша (только изображения) $cache_size_bytes = getDirectorySize($cache_images_dir); $cache_size_mb = round($cache_size_bytes / (1024 * 1024), 2); // Подсчет количества изображений в кэше $image_count = getFileCount($cache_images_dir); // Fetch statistics $stats = []; // Total number of entries $query = "SELECT COUNT(*) AS total_entries FROM anime_list"; $stats['total_entries'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['total_entries']; // Total number of completed anime $query = "SELECT COUNT(*) AS completed_anime FROM anime_list WHERE is_completed = 1"; $stats['completed_anime'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['completed_anime']; // Count by type $query = "SELECT type, COUNT(*) AS count FROM anime_list GROUP BY type"; $stats['by_type'] = $conn->query($query)->fetchAll(PDO::FETCH_ASSOC); // Most recent completion date $query = "SELECT MAX(date_completed) AS most_recent_completion FROM anime_list WHERE date_completed IS NOT NULL"; $stats['most_recent_completion'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['most_recent_completion']; // DB size $query = "SELECT SUM(data_length + index_length) AS size FROM information_schema.TABLES WHERE table_schema = :dbname"; $stmt = $conn->prepare($query); $stmt->execute(['dbname' => $dbname]); $row = $stmt->fetch(PDO::FETCH_ASSOC); $size_in_bytes = $row['size']; $size_in_kilobytes = $size_in_bytes / 1024; ?>