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 相关文章推荐
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP 登录记住密码实现思路
May 07 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
PHP生成网站桌面快捷方式代码分享
Oct 11 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
php多重接口的实现方法
Jun 20 PHP
php单例模式的简单实现方法
Jun 10 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 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
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
解决python删除文件的权限错误问题
2018/04/24 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
学习十八大报告感言
2014/02/04 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
敬老院标语
2014/06/27 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
初中军训感言
2015/08/01 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript