2010-05-29 5 views
1

Comment procéder sur une page Web php? Je veux obtenir et décoder une chaîne json et afficher les résultats en tant que html sur ma page, cependant, je ne veux pas qu'il hotlinking retour à la source.Décodage et mise en mémoire cache json toutes les 60 minutes

Si je pouvais écrire la chaîne décodée dans un fichier txt disons weather.txt sur le serveur et garder le formatage html et faire en sorte que la page ne récupère pas le script json jusqu'à ce que 60 minutes se soient écoulées depuis la dernière fois il a été récupéré indépendamment du nombre de fois où la page est ouverte pendant cette période de 60 minutes et le fichier weather.txt est affiché.

Tout ce que je peux trouver est un script simple qui hotlinks, tout ce que j'ai essayé a tout simplement échoué.

$ file = file_get_contents ('http://sample.com/weather');
$ out = (json_decode ($ fichier));
echo $ out-> mainText;

Appréciera toute aide avec ceci.

Répondre

1

Vous pouvez utiliser filemtime() pour recréer weather.txt toutes les minutes et si ce n'est pas le cas, envoyez le fichier existant.

1

Vous pouvez utiliser un cronjob UNIX qui remplace le contenu de weather.txt toutes les heures avec ce que vos sorties de code

1

Vous pouvez également stocker les données dans une table de la colonne 2, 1 sont des données, on est dts.

SO ....

SELECT * FROM table WHERE dts > NOW() - INTERVAL 60 MINUTE 

if($mysqli->num_rows == 0) 
{ 
    $file = file_get_contents('http://sample.com/weather'); 
    REPLACE INTO table SET data="$file",dts=NOW(); 
    $out = json_decode($file); 
} 
else 
{ 
    $out = json_decode($mysqli->data); 
} 
echo $out->mainText; 

remplacent les instructions SQL avec votre SGBDR de choix