小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式
小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式
嗜学如命的小蚂蚁 发表于3年前
小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式
  • 发表于 3年前
  • 阅读 231
  • 收藏 9
  • 点赞 0
  • 评论 2

移动开发云端新模式探索实践 >>>   

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

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

1. 按照时间间隔更新。

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

<?php
//首先判断是否有静态文件,并且文件的最新修改时间到现在是否大于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.手动更新静态文件

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

<?php
        //按照常规套路的话,这个数组应该是从数据库中拿到的
        //这里为了简便就直接准备一个二位数组
	$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  

标签: php 页面静态化
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 135
博文 161
码字总数 100864
评论 (2)
专业填坑
说的有点简单啊!
嗜学如命的小蚂蚁

引用来自“猪在地上跑”的评论

说的有点简单啊!
说的虽然简单点,但道理都是这么一个道理
×
嗜学如命的小蚂蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: