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数组内存耗用太多问题的解决方法
Apr 05 PHP
php适配器模式介绍
Aug 14 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
WordPress自定义时间显示格式
Mar 27 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
php实现登陆模块功能示例
Oct 20 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 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获得当前的脚本网址
2007/12/10 PHP
PHP 表单提交给自己
2008/07/24 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python探索之创建二叉树
2017/10/25 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
python实现音乐下载的统计
2018/06/20 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
党员干部公开承诺书
2014/03/26 职场文书
软件项目实施计划书
2014/05/02 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript