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

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

每一个web项目,在日PV量达到十万级或百万级抑或更高时,你的网站响应速度就决定你的项目是能够继续活下去,或立马死掉的关键除了升级服务器配置,优化代码,优化数据库之外,另一个技术?页面静态化,也是你不得不采用的技术.

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

具体实现如下:

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