= 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)); } // index by (normalized-ish) url $byUrl = []; foreach ($serverStatus as $svc) { if (!empty($svc['url']) && is_string($svc['url'])) { $byUrl[$svc['url']] = $svc; } } $json = json_encode([ 'ts' => time(), 'data' => $serverStatus, 'byUrl' => $byUrl, ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); if ($json === false) { http_response_code(500); $json = '{"error":"json_encode_failed"}'; } // Write as raw bytes to avoid any output-encoding conversion. fwrite(STDOUT, $json);