Unbekannt). // Nach ~1s lädt die Seite einmal neu mit ?status=1 und rendert dann serverseitig Online/Offline. $shouldComputeStatus = isset($_GET['status']) && $_GET['status'] === '1'; $serverStatusByUrl = []; if ($shouldComputeStatus) { $cacheTtlSeconds = 30; $cacheKey = 'server_status_v5'; $cacheFile = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $cacheKey . '.json'; $serverStatus = null; if (is_file($cacheFile)) { $raw = @file_get_contents($cacheFile); if ($raw !== false) { $decoded = json_decode($raw, true); if (is_array($decoded) && isset($decoded['ts'], $decoded['data']) && is_array($decoded['data'])) { $age = time() - (int)$decoded['ts']; if ($age >= 0 && $age <= $cacheTtlSeconds) { $serverStatus = $decoded['data']; } } } } if (!is_array($serverStatus)) { $serverStatus = build_server_status($serverStatusTargets); @file_put_contents($cacheFile, json_encode(['ts' => time(), 'data' => $serverStatus], JSON_UNESCAPED_SLASHES)); } foreach ($serverStatus as $svc) { if (!empty($svc['url']) && is_string($svc['url'])) { $serverStatusByUrl[$svc['url']] = $svc; } } } require __DIR__ . '/includes/views/layout_head.php'; require __DIR__ . '/includes/views/header.php'; ?>
$items): ?>