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实现首页链接查询 友情链接检查的代码
Jan 05 PHP
PHP 遍历文件实现代码
May 04 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
php使用codebase生成随机数
Mar 25 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
PHP图像处理类库及演示分享
May 17 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 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更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Python调用C语言开发的共享库方法实例
2015/03/18 Python
python实现剪切功能
2019/01/23 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
几道PHP面试题
2013/04/14 面试题
Servlet如何得到服务器的信息
2015/12/22 面试题
学生会离职感言
2014/02/11 职场文书
文秘个人求职信范文
2014/04/22 职场文书
公务员个人考察材料
2014/12/23 职场文书
五年级下册复习计划
2015/01/19 职场文书
感谢信模板大全
2015/01/23 职场文书
《月光曲》教学反思
2016/02/16 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
zabbix配置nginx监控的实现
2022/05/25 Servers