一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

关于php页面静态化原理与例子

时间:2022-06-24 17:05:11 编辑:袖梨 来源:一聚教程网

每一个web项目,在日PV量达到十万级或百万级抑或更高时,你的网站响应速度就决定你的项目是能够继续活下去,或立马死掉的关键

除了升级服务器配置,优化代码,优化数据库之外,另一个技术?页面静态化,也是你不得不采用的技术

我们知道,页面在输出之前,会将输出数据暂时存放到BUFFER(缓冲器)中,然后才会输出到页面;所以,BUFFER中的数据,
就是你PHP代码执行,并且模板渲染之后,所生成的静态数据,即html页面;对于数据更新不是很快,或者页面信息实时性要求
不是很高的时候,我们可以将BUFFER的数据写入到一个html文件中,下次访问时,直接请求这个html页面,这样,中间就免去了PHP代码执行时间,
数据库数据查询时间以及模板渲染的时间,对于数据库I/O量大的页面,能很大地提高页面的响应速度

具体实现如下:

*/
/**
* 这里是你的PHP逻辑代码
*/
//在你页面所有输出内容之前,开启缓冲器
ob_start();
echo ‘hello,word!’
//当使用ob_start()函数之后,页面不会有输出,此时,所有的输出都已经存放在缓存器中
//然后我们将缓存器里面的内容拿出来,存放到一个静态的Html文件中
file_put_contents(‘index.html’,ob_get_contents());//函数ob_get_contents()表示取出当前缓冲器内容;
//然后关闭缓冲器并清除缓冲器内容
ob_end_clean();
/*这样,一个静态的html文件就生成了,然后,需要做的只是判断什么时候该生成html文件,什么时候直接访问Html文件
提示:通过filemtime()函数判断Index.html文件的上次修改时间和当前时间间隔,来控制缓存有效期:
*/
//设置换成有效期为120秒
$cacheTime = ‘120’;
if(time()-filemtime(‘index.html’)>$cacheTime){
//不在缓存有效期,重新生成缓存文件
//这里是你的PHP逻辑代码和生成缓存文件的代码
}else{
//在缓存有效期内,直接调用index.html文件
}

热门栏目