PHP伪静态简单实现(七)

来源:互联网 发布:健身的女生很会夹 知乎 编辑:程序博客网 时间:2024/05/21 06:33

 <?php
//开启缓存
ob_start();
//修改时间差
date_default_timezone_set ("Asia/Shanghai");
//获取当前文件名 得到:/test7.php
$selfName = $_SERVER['PHP_SELF'];
//用正则替换前面的“/”和后面的“.php” 得到 test7
$selfName = preg_replace('///|(.php)/', '' ,$selfName);
//然后在他文件后面加“.html”  得到 test7.html
$selfName .= '.html';
//以读的方式打开文件
$fp = @fopen($selfName, "r");
if ($fp)
{
 //文件修改时间
 $fileMakeTime = filemtime($selfName); 
 /**
  * 判断是否小于当前时间的$differ秒
  * 如果小于的话证明这个文件已经过期了
  * 因为我们的PHP是动态的玩意你在后台修改添加或删除了内容的话 这样的话别人就看不到你更新的内容了
  * 所以就要重新生成html文档
  * 如果大于的话直接给访问者看HTML文档就是了
  */
 $differ = 60*1;//以为时间戳也是以秒来算了所以这里就似乎1分钟的时间了
 if ($fileMakeTime > (time() - $differ))
 {
  //表HTML文档没有过期就给用户看这个HTML文档 用header来跳转吧
  header("location:$selfName");
  //然后后面的程序也没有必要运行下去了
  echo '跳转吧';
  fclose($fp);
  exit;
 }
}
//这后面就是文件过期 就需要重新生成咯
for ($i = 0; $i < 100 ; $i++)
{
 echo "$i/n/r<br />";
}
//把缓存的文件放当$content里去把
$content = ob_get_contents();
//结束缓存并输出缓存内的内容ob_end_flush()就是这功能
ob_end_flush();
//最后把缓存里的东西写成一个html静态的文档吧
$fp = @fopen($selfName, "w");
fwrite($fp, $content);
fclose($fp);

 

原创粉丝点击