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 xml文件操作实现代码(二)
Mar 20 PHP
PHP 工厂模式使用方法
May 18 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
php图片缩放实现方法
Feb 20 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
php workerman定时任务的实现代码
Dec 23 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 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数据库表操作的封装类及用法实例详解
2016/07/12 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
Python2.x与Python3.x的区别
2016/01/14 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
Python netmiko模块的使用
2020/02/14 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
python 实现aes256加密
2020/11/27 Python
python爬虫如何解决图片验证码
2021/02/14 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
高三毕业典礼主持词
2014/03/27 职场文书
工厂车间标语
2014/06/19 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL