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 远程图片保存到本地的函数类
Dec 08 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
解析PHP提交后跳转
Jun 23 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
关于PHP语言构造器介绍
Jul 08 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
php实现的操作excel类详解
Jan 15 PHP
php+ajax无刷新上传图片的实现方法
Dec 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
详谈Python基础之内置函数和递归
2017/06/21 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
Python中如何引入第三方模块
2020/05/27 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
css3隔行变换色实现示例
2014/02/19 HTML / CSS
银行实习生自我鉴定范文
2013/09/19 职场文书
班组长安全职责
2014/01/05 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
个人培训总结
2015/03/05 职场文书
创业计划书之养殖业
2019/10/11 职场文书
Python爬虫基础初探selenium
2021/05/31 Python