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 中include()与require()的对比
Oct 09 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
php文件夹的创建与删除方法
Jan 24 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
php 数据结构之链表队列
Oct 17 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php生成rss类用法实例
2015/04/14 PHP
详解PHP数组赋值方法
2015/11/07 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
基于python的Paxos算法实现
2019/07/03 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
几道PHP面试题
2013/04/14 面试题
酒吧总经理岗位职责
2013/12/10 职场文书
英语课外活动总结
2014/08/27 职场文书
党风廉正建设责任书
2015/01/29 职场文书
嘉宾邀请函
2015/01/31 职场文书
企业工会工作总结2015
2015/05/13 职场文书
债务纠纷代理词
2015/05/25 职场文书
SQL Server中锁的用法
2022/05/20 SQL Server
Hive HQL支持2种查询语句风格
2022/06/25 数据库