文档章节

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

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/10/10 22:08
字数 697
阅读 244
收藏 9

更新生成纯静态化页面的三种方式: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  

© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 137
博文 161
码字总数 100864
作品 0
郑州
程序员
加载中

评论(2)

嗜学如命的小蚂蚁
嗜学如命的小蚂蚁

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

说的有点简单啊!
说的虽然简单点,但道理都是这么一个道理
专业填坑
专业填坑
说的有点简单啊!
小蚂蚁学习页面静态化(1)——静态化的原理

关于页面php文件执行阶段 语法分析——》编译——》运行 如何优化页面的响应时间 动态页面静态化 优化数据库 使用负载均衡 使用缓存 页面静态化能够解决的问题 1.减少服务器脚本的计算时间 ...

嗜学如命的小蚂蚁
2015/10/09
242
2
zblog2.3的缺点:纯静态化无法实现栏目名加id的网址结构[图]

写博客应半年了,因为对程序语言比较感兴趣,因此也关注博客系统的发展,对于国内博主来说,ZBLOG似乎是最佳的选择,功能比较完善,也比较好修改模板,当然,你还需要写CSS代码,模板里面基本...

原创小博客
07/06
0
0
php页面静态化

网站一直在加载,很慢,处理方式多种; 0.页面静态化; 1.优化数据库; 2.负载均衡; 3.使用缓存技术 关于页面静态化 使用函数如 fileputcontents($filename,$string); php的输出缓冲区 开启...

just_wkj
2016/01/02
114
0
小蚂蚁学习页面静态化(3)——页面静态化中局部动态化案例实现

说白了,其实就用到了一个知识点——ajax。在静态化页面中使用ajax动态获取数据库中的数据,写入到静态化页面中相应的位置即可。虽然这些代码在平时的工作中都写烂了,但我还是决定在博客中重...

嗜学如命的小蚂蚁
2015/10/11
337
0
(PHP学习笔记)实现页面静态化

当我们在访问各个门户信息网站时,主页都会给我们显示各种头条、导航信息(例如新闻网)。我们可以想象,面对众多的数据库访问等操作,在我们访问这些网页的同时加载速度将会变得很慢。众所周...

w1sw
2016/08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
2
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
2
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
48
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部