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 相关文章推荐
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
php的array_multisort()使用方法介绍
May 16 PHP
PHP可变函数的使用详解
Jun 14 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
iOS10推送通知开发教程
Sep 19 PHP
PHP写的简单数字验证码实例
May 23 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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
深入了解php4(2)--重访过去
2006/10/09 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
JavaScript继承方式实例
2010/10/29 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
Vue数据双向绑定原理及简单实现方法
2018/05/18 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
简单实现python画圆功能
2018/01/25 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
wxPython实现带颜色的进度条
2019/11/19 Python
django queryset相加和筛选教程
2020/05/18 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
社区优秀志愿者材料
2014/02/02 职场文书
高中军训感想800字
2014/02/23 职场文书
道路建设实施方案
2014/03/18 职场文书
关于工作经历的证明书
2014/10/11 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
认识实习感想
2015/08/10 职场文书