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 动态执行带有参数的类方法
Apr 10 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
php合并数组中相同元素的方法
Nov 13 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
用PHP代码给图片加水印
Jul 01 PHP
php阳历转农历优化版
Aug 08 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
详解JS函数重载
2014/12/04 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
python提取字典key列表的方法
2015/07/11 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
python3使用GUI统计代码量
2019/09/18 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
公司市场部岗位职责
2013/12/02 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
导游词之桂林山水
2019/09/20 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏