time()) { $repositories = unserialize(file_get_contents($cache_file)); if (is_array($repositories)) { return $repositories; } } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://github.com/api/v1/xml/' . $username); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $xml = curl_exec($curl); curl_close($curl); $xml = new SimpleXMLElement($xml); $repositories = array(); foreach ($xml->repositories->repository as $repository) { $result = array(); foreach ($repository->children() as $key => $value) { $result[$key] = (string) $value; } $repositories[] = $result; } file_put_contents($cache_file, serialize($repositories)); return $repositories; } /** * Automatically creates a sidebar block of projects for the specified username. * * @param string $username Username to retrieve repositories for. * @param integer $duration Duration to cache the result, in seconds. Defaults to one hour. * @see github_repositories_for */ function github_project_list_for($username, $duration = 3600) { $repositories = github_repositories_for($username, $duration); echo '