$repoData) { $repo = getRepo($repoId, $repoData); print $c++ ? ',' : ''; print json_encode($repoId) . ':'; print json_encode($repo->info(), JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_FORCE_OBJECT); } print '}'; exit(0); } $repoId = $_REQUEST['repo']; if (!array_key_exists($repoId, $allRepositories)) { Header("HTTP/1.1 404 Repository not found"); exit(0); } $repo = getRepo($repoId, $allRepositories[$repoId]); $cacheDir = null; $ts = $repo->newestTimestamp($path); if (isset($config['cache'])) { $cacheDir = "{$config['cache']}/repo"; @mkdir($cacheDir); $cacheTs = filemtime("{$cacheDir}/{$repoId}.json"); if ($cacheTs === $ts) { Header("Content-Type: application/json; charset=utf-8"); readfile("{$cacheDir}/{$repoId}.json"); exit(0); } } $data = $repo->data(); $ret = json_encode($data, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); Header("Content-Type: application/json; charset=utf-8"); print $ret; file_put_contents("{$cacheDir}/{$repoId}.json", $ret); touch("{$cacheDir}/{$repoId}.json", $ts);