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支持页面回退的两种方法[转]
Feb 14 PHP
PHP中for循环语句的几种变型
Mar 16 PHP
mysql limit查询优化分析
Nov 12 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
PHP基本语法
Mar 31 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  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
php命令行写shell实例详解
2018/07/19 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python调用自定义函数的实例操作
2019/06/26 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
python实现人机五子棋
2020/03/25 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
计算机工程学院个人求职信
2013/10/05 职场文书
高中自我评价分享
2013/12/05 职场文书
车间副主任岗位职责
2013/12/24 职场文书
半年思想汇报
2013/12/30 职场文书
党支部三会一课计划
2014/09/24 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书