PHP 实现页面静态化的几种方法


Posted in PHP onJuly 23, 2017

1、通过buffer来实现

需要用file_put_contents ob_get_clean()等内置函数

ob_start ();
include "filterpost.html";
$mtime = filemtime("./filterpost.html");//在这里可以判断文件是否存在和过期,然后做缓存或者生成静态文件操作
$pageCache = str_replace('submit2','login',ob_get_contents());//将缓存去中的内容替换
ob_end_clean();
echo $mtime;
echo $pageCache;

2、通过$_SERVER['PATH_INFO']来实现

echo '<pre>';
print_r($_SERVER);
preg_match('/^\/(\d+)\/(\d+)\.html/',$_SERVER['PATH_INFO'],$arr);
print_r($arr);

3、通过Apache配置来实现

需要开启rewrite重写模块
通过rewrite来配置vhost

RewriteEngine on 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteRule ^/detail/([0-9]*).html$ /detail.php?id=$1

如果服务器下不存在文件夹及其文件,那么就重写定义到/detail.php
http://localhost/detail/1.html
如果没有detail文件夹下的1.html 那么就重写定义到./detail.php

4、通过Nginx配置来实现

 在nginx.conf中配置 

rewrite ^/detail/(\d+)\.html$ /detail.php?id=$1 last;

当然建议大家参考一些比较成熟的cms的方法,对于页面数量不大的话,第一种方法还是不错的。

PHP 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
解析strtr函数的效率问题
Jun 26 PHP
关于php循环跳出的问题
Jul 01 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
基于PHP生成简单的验证码
Jun 01 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
PHP高并发和大流量解决方案整理
Mar 09 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 #PHP
php魔法函数与魔法常量使用介绍
Jul 23 #PHP
php curl上传、下载、https登陆实现代码
Jul 23 #PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 #PHP
laravel自定义分页效果
Jul 23 #PHP
PHP批量删除jQuery操作
Jul 23 #PHP
PHP mysqli事务操作常用方法分析
Jul 22 #PHP
You might like
深入理解php的MySQL连接类
2013/06/07 PHP
javascript插入样式实现代码
2012/02/22 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue监听dom大小改变案例
2020/07/29 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
python解析xml文件操作实例
2014/10/05 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
大学生思想汇报范文
2013/12/31 职场文书
《手指教学》反思
2014/02/14 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
spring 项目实现限流方法示例
2022/07/15 Java/Android