$value) { $candidate[$value] = $data[$key]; } $candidateData[] = $candidate; } fclose($handle); } else { error_log('Error opening candidates file'); exit(1); } $candidateData = array_filter($candidateData, function ($candidate) use ($councilData) { return isset($candidate["Council"]) && $candidate["Council"] === $councilData['shortName']; }); if (empty($candidateData)) { error_log("Failed to load any candidates for " . $councilData['shortName']); } $renderer = new SPLPageRenderer(); $pageContent = $renderer->renderCouncilPage($councilData, $candidateData); if ($pageContent === null) { exit(2); } echo $pageContent; exit(0);