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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : (résolu] Curl, mettre en cache une interogation

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

par Castor Gaspard » 14 nov. 2011, 19:02

...

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

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

par Castor Gaspard » 14 nov. 2011, 16:18

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