Page 1 sur 1

(résolu] Curl, mettre en cache une interogation

Posté : 14 nov. 2011, 16:18
par Castor Gaspard
Bonjour,

J'utilise Curl pour appeler une requête. Or, l'Api du Provider demande que les requêtes ne soient pas supérieures à cinq minutes. Donc, "comment mettre en cache" ou plus simplement "empêcher" une nouvelle requête pendant ce délai ?

Je ne tiens pas à stocker les données pendant cinq minutes dans une table ou un fichier texte, car ce "raffinement" me semble disproportionné.

J'ai testé...
curl_setopt($ch, CURLOPT_URL, "https://api... );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); /* Première hypothèse */
curl_setopt($ch, CURLOPT_TIMEOUT, 300); /* Deuxième hypothèse */
mais un var_dump semble indiquer que l'interrogation n'est pas mise en cache.

Merci pour votre aide. :D

Cordialement,

Gaspard

Re: (résolu] Curl, mettre en cache une interogation

Posté : 14 nov. 2011, 19:02
par Castor Gaspard
...

Tant pis, vive une mise en cache rudimentaire....
$expire = time() - (60 * 5);
if(file_exists($cache) && filemtime($cache) > $expire):
	readfile($cache);
else:
	ob_start();
        // La requête avec Curl est ici 
        $content = ob_get_contents();
        ob_end_clean(); 
        file_put_contents($cache, $content);
        echo $content;
endif;
... si ça intéresse un jour un lecteur de cet honorable forum. :mrgreen:

Cordialement,

Gaspard