php纯静态化实时更新,小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式...

更新生成纯静态化页面的三种方式:1.按照时间间隔更新。2.手动更新。3.定时更新(需要系统配合)。

1. 按照时间间隔更新。

当用户第一次访问这个页面的时候,程序自动判断,该静态文件是否存在,并且该文件是否还在有效时间内,如果该文件未超出了有效时间,用户访问的是已经生成的静态文件。如果超出了有效时间,用户得到的是动态输出的内容,同时重新生成静态文件。稍微修改一下昨天的代码为例:

//首先判断是否有静态文件,并且文件的最新修改时间到现在是否大于20秒

if(is_file('./text.php') && time()-filemtime('./text.php') <= 20){

//条件成立,将已经生成的静态文件输出给用户

include_once('./text.php');

}else{

//条件不成立,重新走数据库,获取数据,分配模板,输出内容

$arr=array(

0=>array('title'=>'这里是第一个标题'),

1=>array('title'=>'这里是第二个标题'),

2=>array('title'=>'这里是第三个标题'),

3=>array('title'=>date('Y-m-d H:i:s'))

);

//缓冲区必须要在输出之前开启

ob_start();

//输出模板

include_once('./template.php');

//输出内容的同时生成静态文件,注意使用的函数是ob_get_contents();

file_put_contents('./text.php', ob_get_contents());

/*

if(file_put_contents('./text.php', ob_get_contents()){

echo 'success';

}else{

echo 'error';

}

*/

}

?>

2.手动更新静态文件

这个超级简单,做一个按钮,给它一个标签,链接到这个脚本即可,点击一下按钮,生成一个最新的静态文件,逻辑代码和昨天写的一模一样,为了阅读方便,我还是把昨天的代码复制一份儿过来吧。

//按照常规套路的话,这个数组应该是从数据库中拿到的

//这里为了简便就直接准备一个二位数组

$arr=array(

0=>array('title'=>'这里是第一个标题'),

1=>array('title'=>'这里是第二个标题'),

2=>array('title'=>'这里是第三个标题')

);

//缓冲区必须要在输出之前开启

ob_start();

//把模板文件引入

include_once('./template.php');

//从缓冲区拿到文件,写到本地保存起来

if(file_put_contents('./text.php', ob_get_clean())){

echo 'success';

}else{

echo 'error';

}

?>

3.定时更新(这个需要借助linux系统)

命令行    crontab    -e    编辑    crontab

*/1 * * * * php /index.php    每一分钟执行一次index.php脚本

五个*分别表示:分    时    日    月    周

查看crontab日志可以查询是否生成静态文件。命令: tail -f    /var/log/cron.log

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值