zoukankan      html  css  js  c++  java
  • 全页面静态化缓存

    打开php.ini配置文件查看output_buffering参数有没有打开output_buffering = on oroutput_buffering = 数值

     我的目录结构随便搞都可以分清楚静态和动态页面就可以

    singwa.php  动态页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>新闻中心</title>
    <link rel="stylesheet" href="public/css/bootstrap.min.css" type="text/css">
    </head>
    <body>
    <div class="container">
    <h3>新闻列表</h3>
    <ul class="list-group">
    <?php foreach ($news as $key => $value) { ?>
    <li class="list-group-item"><a href="#"><?php echo $value[5];?></a></li>
    <?php } ?>
    </ul>
    </div>
    </body>
    </html>

    index.php
    //1、连接数据库,然后从数据库里面获取数据
    //2、把获取到的数据填充到模板文件里面
    //3、需要把动态的页面转化为静态页面,生成纯静态化文件
    if(is_file('index.shtml') && (time() - filemtime('index.shtml')) < 20) { //设置缓存失效时间  time当前时间-filemtime最后修改时间<20秒 则使用缓存文件 否则重新生成静态文件
    require_once('index.shtml');
    } else {
    require_once('db.php');

    $connect = Db::getInstance()->connect();
    $sql = "SELECT * FROM news WHERE `category_id` = 1 AND `status` = 1 ORDER BY id LIMIT 5";
    $result = mysql_query($sql, $connect);
    $news = array();
    while($row = mysql_fetch_array($result)) {
    $news[] = $row;
    }

    //print_r($news);

    ob_start(); //开启缓存区

    //引入模板文件
    require_once('templates/singwa.php'); //动态文件 singwa.php界面同样进过缓冲区
    file_put_contents('index.shtml', ob_get_contents());
    /*if(file_put_contents('index.shtml', ob_get_clean())) {
    echo 'success';
    } else {
    echo 'error';
    }*/
    }


  • 相关阅读:
    【原创】python中文编码问题:控制窗口能输出中文,到文本文件里乱码
    【转载】在notepad++中直接运行python代码
    报错The reference to entity "characterEncoding" must end with the ';' delimiter
    原码, 反码, 补码 详解
    GC 过程图解
    Java NIO:浅析I/O模型
    Java类加载器的工作原理
    修改classloader的加载路径
    ThreadLocal 源码分析
    冒泡排序、快速排序、堆排序
  • 原文地址:https://www.cnblogs.com/caoql/p/8709731.html
Copyright © 2011-2022 走看看