动态语言静态化

2019-07-08  本文已影响0人  你与时光终会散

一、什么是动态语言静态化

将现有的PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态的HTML文件的过程。
对实时性不高的页面

二、为什么要静态化

三、静态化的实现方式

使用模板引擎smarty
利用ob系列函数

    ob_start() 打开输出控制缓存
    ob_get_contents() 返回输出缓冲区内容
    ob_clean() 清空输出缓冲区
    ob_end_flush() 冲刷出(送出)输出缓冲区内容并关闭缓冲
  
    ob_start()
    输出到页面的HTML代码
    ob_get_contents()
    ob_end_flush()
    fopen()写入

可以判断文件的inode修改时间,判断是否过期,使用filectime函数

<?PHP
$id = $_GET['id'] ?? '';
$cache_name = md5(__FILE__) . '-' . $id . '.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>THIS IS MY SCRIPT123 id=<?=$id?></b>

<?php
$content = ob_get_contents();
ob_end_flush();
$handle = fopen($cache_name, 'w');
fwrite($handle, $content);
fclose($handle);
上一篇 下一篇

猜你喜欢

热点阅读