PHP静态化技术
2024-09-02 14:55:29
很多框架的模板引擎都有页面静态化的功能 目的是为了优化网站运行时间
静态化分两种 纯静态和伪静态
一. 纯静态
纯静态展示的是实实在在的静态页面
运行PHP程序 判断是否存在静态页 如果存在 展示静态页 如果不存在 生成静态页 再展示
实现方法 是PHP的ob缓冲
//PHP程序一系列逻辑 并将要展示的数据赋值给某些变量准备在模板中使用
ob_start();//开启ob缓冲区 也可以在配置文件中开启
require_once('template/index.php');//引入模板文件 也有可能是html文件 此时模板中的变量已全部解析替换
$s = ob_get_contents(); //将缓冲区的内容取出
file_put_contents('./index.html', $s);//将缓冲区的内容写入一个静态文件 一般的做法是将文件路径加密之后作为文件名
二.伪静态
伪静态就是在url上看起来是静态 实际上它走的还是动态流程
http://www.baidu.com/home/1.html
实现方法有两种
1.是项目路由解析把后缀拎出来
$_SERVER变量里可以抓出url上面的所有节点 拆分成自己想要的即可 该替换的替换 该组合的组合
2.是Apache重写功能rewrite
开启Apache重写功能 在项目目录中创建.htaccess文件写入规则
比如写入如下内容
RewriteEngine on
RewriteRule ^localhost/([a-zA-Z]{1,})/([0-9]{1,})\.html$ localhost/$1.php?id=$2
如浏览器访问localhost/home/1.html 实际上被apache重写为localhost/home.php?id=1
重写规则的细节规则有点多,有兴趣的朋友可以去研究。
静态化技术也就这两种 伪静态只是url看起来好看 实际上对程序并没有优化效果
最新文章
- ios学习资源
- ReportViewer内存泄漏问题解决方案[上]
- 多线程java代码移植到android&;下载文本界面的更新
- speed up your sharepoint
- Objective-C探究alloc方法的实现
- #include<;>; 和#include“”的区别
- mac 利用svn下载远程代码出现Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
- AX_CreateAndPostPurch
- springboot 常用配置文件
- mysql5.6更改datadir数据存储目录
- 【Django】关于数据过滤
- BZOJ1087[SCOI2005]互不侵犯——状压DP
- Android App优化之ANR详解
- datetimerangepicker配置及默认时间段展示
- C 复制字符串
- Linux-文件和目录属性
- Arrays.asList的用法
- Linux下查看Tomcat的控制台输出信息
- linux 运维基础之http协议详解
- centos7 ACL
热门文章
- Chinese Rings hdu 2842 矩阵快速幂
- Centos7搭建swarm集群
- windows下创建Python虚拟环境
- java基础解析系列(八)---fail-fast机制及CopyOnWriteArrayList的原理
- zoj 1884 简单 键盘 字符 处理
- Java 继承、抽象、接口
- 错误:Cannot set property &#39;innerHTML&#39; of null
- 1、Http概述
- (@WhiteTaken)设计模式学习——享元模式
- [js高手之路] 设计模式系列课程 - jQuery的extend插件机制