Le moyen le plus propre pour ce faire serait d'utiliser APC (Alternative PHP Cache) s'il est installé. Cela a construit dans le « temps de vivre » fonctionnalité:
if (apc_exists('twitter_result')) {
$twitter_result = apc_fetch('twitter_result');
} else {
$twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is
apc_store('twitter_result', $twitter_result, 10 * 60); // store for 10 mins
}
Un délai d'attente de 10 minutes sur les données serait mon choix. Cela varie en fonction de la fréquence l'alimentation est mis à jour ...
Modifier Si vous ne l'avez pas installé APC, vous pouvez le faire en utilisant un fichier très simple:
if (file_exists('twitter_result.data')) {
$data = unserialize(file_get_contents('twitter_result.data'));
if ($data['timestamp'] > time() - 10 * 60) {
$twitter_result = $data['twitter_result'];
}
}
if (!$twitter_result) { // cache doesn't exist or is older than 10 mins
$twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is
$data = array ('twitter_result' => $twitter_result, 'timestamp' => time());
file_put_contents('twitter_result.data', serialize($data));
}
Juste utilisé une variation de l'EDIT et ça marche si bien! – Coop
c'est la solution pour la seule page, lol – Jasper