• 原森林之家(foresthouse.cn)改为走私范(zousifan.com),只是改个名内容不变。
  • 网站图片自建立开始到19年全部丢失,血的教训时刻备份,多点备份!

PHP做缓存,读缓存和存缓存示例

心得笔记 5年前 (2019-02-28) 401次浏览 0个评论 扫描二维码
本文最后更新于2022年7月10日,已超过 1 年没有更新,如果文章内容失效,请 反馈 给我们,谢谢!

这段代码本来也是网上的,最近在做一个意淫形式的网站效果需要把一个基数以乖以当前的小时(一天24小时嘛一定会越来越高),但是这样难免不会被察觉到,比如基数为10不论每天的1点都是10、每天的12点都是120长此以往也太不把用户当回事了这假的也太明显了吧,就想着在这个基础上我可以去加上一个随机数或者是乖以一个随机数,那么就不会每天的时间点都一样了。


下面的代码中主程序是我自己的可以自行修改直接套进去即可,完整代码与注释如下:

<?php
$filename = "./data/test.html";
$cachetime = 5;//缓存秒数会多出来一秒
if(!file_exists($filename) || filemtime($filename)+$cachetime<time()) //filemtime($filename)获取文件修改时间,加上定义的缓存时间小于当前时间
{
//开启内存缓存
ob_start();
?>

<?php
//主程序开始(需要被缓存的数据)
$nowh=date("H");
if ($nowh>=22){echo "开始……";exit;}
elseif($nowh>=24){echo "完成……";exit;}
//echo $nowday;
$jishu=1024;
$nownum=$jishu*$nowh+rand(1,100);
echo $nownum."上次更新".date("H:i:s");;
//结束
?>

<?php
//从内存缓存中获取页面代码
$content = ob_get_contents();
//将获取到的内容存放到缓存文件
file_put_contents($filename,$content);
//清掉内存缓存
ob_flush();
//echo "###############"; //测试是否调用了缓存文件,缓存文件不输出这句话
}
else
{
include($filename); //如果存在,调用缓存文件
}

?>
补充一点关于怎么调用缓存的问题可以把缓存文件改成txt格式的比如“test.txt”,如果要调用的数据多可以分行比如调用test.txt的第一行、第二行等就行了,那么关于分行参考上面的代码可以这么写:
$jishu=10240;
$jishu1=20480;
$jishu2=123456;
$nownum=$jishu*$nowh+rand(1,100);
$nownum1=$jishu1*$nowh+rand(10,1000);
$nownum2=$jishu2*$nowh+rand(10,1000);
echo $nownum."上次更新".date("H:i:s");
echo '
';
echo $nownum1."上次更新".date("H:i:s");
echo '
';
echo $nownum2."上次更新".date("H:i:s");
//结束

在模板中调用可以这么写:

<?php $a=file('../data/test.txt'); echo $a[0]; ?>
<?php $a=file('../data/test.txt'); echo $a[1]; ?>
<?php $a=file('../data/test.txt'); echo $a[2]; ?>

或者这么写

<?php $a=file('../data/num.txt'); echo "<img src='/data/t/img/notic1.png'/>".$a[0]."<img src='/data/t/img/notic2.png'/>".$a[1]."<img src='/data/t/img/notic3.png'/>".$a[2]; ?>

调用的结果如下:


204883上次更新20:11:10
410019上次更新20:11:10
2469543上次更新20:11:10

版权所有丨如未注明 , 均为原创丨本网站采用 BY-NC-SA 协议进行授权 , 转载请注明 出处!
喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
    仅用来给您发送回复提醒。不会公开!
  • 网址