Caching file CSV lato server

Nel seguente esempio vi mostrerò come effettuare un caching di una chiamata (nel caso specifico, effettueremo il caching di una chiamata addthis, il quale restituisce un file CSV)

Nell’esempio verrà controllata la data di creazione del file di cache (se esiste) e ricreato se più vecchio di 12 ore, altrimenti verrà risparmiata la chiamata addthis e letto il contenuto presente sul file cacheato.

$path = “percorso/”;

$file_name = “nomefile.csv”;
$new_file = 0;

if ( file_exists($path.$file_name) ) {

//con filemtime viene controllata la data di creazione del file

$date_file = date (“c”, filemtime($path.$file_name));

$now = time();

$time_gap = $now-strtotime($date_file);
// time_gap > 12h (43.200 sec)
if ($time_gap > 43200) {
$new_file = 1;

//se il file è vecchio viene cancellato
unlink($path.$file_name);
}

} else {
$new_file = 1;
}
if ($new_file) {
//nuova richiesta
$handle_new = fopen(“http://api.addthis.com/analytics/1.0/pub/shares/url.csv?……”, “r”);

//salviamo il risultato sul file
$handle = fopen($path.$file_name, ‘w’);
while (($data = fgetcsv($handle_new, 1000, “,”)) !== FALSE) {
fputcsv($handle, $data);
}
fclose($handle);

}
//leggiamo dalla copia locale copia locale
$handle = fopen($path.$file_name, ‘r’);

Con l’ultima chiamata leggiamo il contenuto del file (cacheato o appena creato).

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...