关于PHP动态转静态减轻压力的方法

<?php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
**此段代码要放在所有页面都包含的模块里
**比如const.php或conn.php
**$isHTMLModel 此变量设置是否保存页面内容为静态文件
**$spacing 此变量设置更新时间
**$HtmlPath 此变量保存当前显示的页面的静态文件的路径
**UseHtmlPage 此函数的作用主要是判断当前页面的HTML静态文件是否过期,是则返回文件路径
*/
$isHTMLModel =0; //是否使用静态化页面
$spacing =1; //生成新的文件更新间隔时间 单位:小时
$HtmlPath =UseHtmlPage( $isHTMLModel , $spacing );
 
 
 
/*
**此段代码放在需要输出静态文件的页面最底部
**主要作用就是根据上面的设置参数,把当前动态页面里显示过的内容
**生成为静态HTML文件,保存的静态文件的路径在$HtmlPath里
*/
CreateHtmlPage( $HtmlPath , $isHTMLModel )
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//如果使用静态页面则取得当前页面的路径,并判断是否存在静态文件和文件的生成日期时间戳与当前日期时间戳是否相差$spacing这么多,有则跳转,无有则生成静态文件路径
function UseHtmlPage( $isHTMLModel , $spacing ){
     if ( $isHTMLModel ){
         $paramet = "" ;
         $paramet = $_SERVER [ 'QUERY_STRING' ];
         if ( $paramet != "" ) $paramet = "=" . str_replace ( "=" , "-" , str_replace ( "&" , "_" , $_SERVER [ 'QUERY_STRING' ])). "" ;
         
         
         $HtmlPath =dirname( $_SERVER [ "SCRIPT_FILENAME" ]). "\\html" . str_replace ( ".php" , $paramet . ".html" , str_replace ( "/" , "\\" , $_SERVER [ "PHP_SELF" ]));
         $Path = "/html" . str_replace ( ".php" , $paramet . ".html" , $_SERVER [ "PHP_SELF" ]);
         if ( file_exists ( $HtmlPath )){
             $one = strtotime ( date ( 'r' , filemtime ( $HtmlPath ))); //文件之前 时间戳
             $two = time(); //系统现在 时间戳
             $cle = $two - $one ; //得出时间戳差值
             if ( $H < $spacing ) {header( "Location: " . $Path );}
         }
         return $HtmlPath ;
     }
}
 
//如果使用静态页面并且有静态文件路径,则把当前页面的缓存写到静态文件中
function CreateHtmlPage( $HtmlPath , $isHTMLModel ){
     if ( $isHTMLModel ) WriteHtml( $HtmlPath );
}
 
//把当前页面的缓存写到静态文件中
function WriteHtml( $filepath ){
     if ( $filepath != "" ){
         $content = ob_get_contents(); //取得php页面输出的全部内容
         ob_flush();
         @unlink( $filepath );
         $fp = fopen ( $filepath , "w" ); //创建一个文件,并打开,准备写入
         fwrite( $fp , $content ); //把php页面的内容全部写入
         fclose( $fp );   
     }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值