分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

php 页面静态化

发布时间:2023-09-06 02:23责任编辑:胡小海关键词:静态化

1、在开发项目时,有时会遇到一些页面数据量特别大,但是又不经常改变的情况,如商城首页等,这时候就需要进行页面静态化,减轻服务器和数据库的压力。

这里我们先用原生的PHP写一个简单的demo,用来理解页面静态化的原理,然后再尝试用框架说明一下(thinkphp)。

主要会使用到PHP的ob相关函数和文件操作函数file_put_contents.

这里在项目中新建了两个文件,test.php(控制器),muban.php(模板)

test.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
if(file_exists("match.html") && (time()-filemtime("match.html"))<300)
{
    //如果存在对应的静态文件,则直接访问
    require_once("match.html");
}else{
    //这里用数组来仿真数据库操作,现实一般都是操作数据库得到对应数据
    $student array("huangxing","chenyuwei",‘xufei‘,‘zhangjingwen‘,‘xuepei‘);
    ob_start();
    //载入模板
    require_once("muban.php");
    file_put_contents("match.html",ob_get_clean());
    require_once(‘match.html‘);
     
}

  muban.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <ul>
    <?php foreach ($student as $key => $value) {?>
        <li><?php echo $value;?></li>
    <?php } ?>
    </ul>
</body>
</html>

  然后在浏览器执行test.php,就可以看到项目中生成了match.html静态文件。

以上是一个全静态化的demo,现实项目中可能会遇到局部动态化的情况。如商城首页,大部分是不需要修改的,但是可能有一个实时的活动需要在首页展示,这是可以使用ajax异步加载技术。

一般的框架中都自定义好了页面静态化函数,或者相关配置,以thinkphp3.2为例,只需要在配置文件做相关配置就可以,具体可以参考thinkphp手册  缓存=>静态缓存

1
2
3
4
5
6
7
8
9
10
<?php
return array(
    ‘HTML_CACHE_ON‘     =>    true, // 开启静态缓存
    ‘HTML_CACHE_TIME‘   =>    3600,   // 全局静态缓存有效期(秒)
    ‘HTML_FILE_SUFFIX‘  =>    ‘.shtml‘// 设置静态缓存文件后缀
    ‘HTML_CACHE_RULES‘=> array(// 定义静态缓存规则
        ‘Index:index‘    =>array(‘{:controller}_{:action}‘),
        ),
    ‘HTML_PATH‘=>‘./HTML/‘,
);

  这里需要注意的就是 HTML_CACHE_RULES

php 页面静态化

原文地址:https://www.cnblogs.com/milkybounty/p/9989310.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved