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 Session_Regenerate_ID函数双释放内存破坏漏洞
Jan 27 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
php实现的zip文件内容比较类
Sep 24 PHP
php动态函数调用方法
May 21 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
初识ThinkPHP控制器
Apr 07 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
php Session无效分析资料整理
Nov 29 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 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语法(2)
2006/10/09 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
几个SQL的面试题
2014/03/08 面试题
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
自动化专业个人求职信范文
2013/11/29 职场文书
护士感人事迹
2014/05/01 职场文书
工业设计专业自荐书
2014/06/05 职场文书
2014离婚协议书范文
2014/09/10 职场文书
个人收入证明模板
2014/09/18 职场文书
教师节大会主持词
2015/07/06 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
深入理解python协程
2021/06/15 Python