高并发解决方案-动态语言静态化
2020-03-21 15:45:17 来源:admin 点击:859
将现有的PHP动态语言的逻辑代码生成静态的HTML文件,用户访问动态脚本重新定向到静态HTML文件的过程。
动态脚本通常会做逻辑计算和数据查询,访问量大时,服务器压力越大
解决方案
如果没有用smarty模板
则原生实现:
ob_start():打开输出控制缓冲
写输出到页面的html代码
ob_get_content():返回输出缓冲区的内容
//ob_clean():清空缓冲区
ob_end_flush():冲刷出缓冲区的内容并关闭缓冲区
fopen()写入
<?php $cache_name = md5(__FILE__).'html'; $cache_lifetime = 3600; //如果名称存在,或者过期 或者文件被更改 if(filectime(__FILE__) <= filectime($cache_name) && file_exists($cache_name) && filectime($cache_name) + $cache_lifetime > time()) { include $cache_name; exit; } ob_start(); ?> <b> 我是臧富祥 哈哈</b> <?php $content = ob_get_contents(); ob_end_flush(); //打开资源 $handel = fopen($cache_name,'w'); //写入 fwrite($handel,$content); //关闭 fclose($handel); ?> //如果值不同页面不同 $id = $_GET['id']; if(empty($id)){$id = ''} $cache_name = md5(__FILE__).'-'. $id .'html';