每隔60分钟解码和缓存json

时间:2010-05-29 22:26:21

标签: php caching runtime json

我如何在php网页上执行此操作?

我想获取并解码一个json字符串并在我的页面上将结果显示为html,但是,我不希望它将热链接返回到源代码。

如果我可以将解码后的字符串写入txt文件,请说服务器上的weather.txt并保留html格式并执行此操作,以便页面不会获取json脚本,直到距离上次60分钟为止无论在60分钟内打开页面多少次并且查看weather.txt,都会获取。

我能想到的只是一个简单的脚本,热链接,我尝试过的其他一切都失败了。

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

对此有任何帮助。

4 个答案:

答案 0 :(得分:1)

您可以使用filemtime()每分钟重新生成weather.txt,如果没有,则发送现有文件。

答案 1 :(得分:1)

你可以使用UNIX cronjob,它会每小时用你的代码输出覆盖weather.txt的内容

答案 2 :(得分:1)

您还可以将数据存储在2列表中,1表示数据,1表示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; 

用您选择的RDBMS替换SQL语句

答案 3 :(得分:0)

Twitter api only allows 150 json calls per hour and twitter drops unwanted cookies. How do I prevent this?

处尝试我的回答

有一个很好的缓存模块。它设置为5分钟,但很容易修改60分钟。