欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-25 10:43:35
...
静态化页面可以减少服务器的一个负载了,如果我们同样的一台机器如果有数据库连接只能负载100IP,那么用静态htm文件估计可以负载1000IP,所以我们很多站都是静态化的页面这也是主要的原因了,下面一看一个关于php页面静态化原理与例子.

每一个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文件 
}


文章网址:

随意转载^^但请附上教程地址。