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连接MongoDB示例代码
Sep 06 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
php对接java现实加签验签的实例
Nov 25 PHP
php curl常用的5个经典例子
Jan 20 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
Laravel 实现添加多语言提示信息
Oct 25 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文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
跟老齐学Python之关于类的初步认识
2014/10/11 Python
Python中for循环控制语句用法实例
2015/06/02 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python实现抽奖小程序
2020/04/15 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
青年创业培训欢迎词
2014/01/10 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
会计专业自我鉴定
2014/02/10 职场文书
大型演出策划方案
2014/05/28 职场文书
2014年党支部承诺书
2014/05/30 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
python 网络编程要点总结
2021/06/18 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python