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操作的各种方法解析(比较详细)
Jun 17 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 PHP
Git命令之分支详解
Mar 02 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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/11/11 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
JS实现百度搜索框
2021/02/25 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
详解django中使用定时任务的方法
2018/09/27 Python
pandas-resample按时间聚合实例
2019/12/27 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
什么是Rollback Segment
2013/04/22 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
大学学风建设方案
2014/05/04 职场文书
植树节口号
2014/06/21 职场文书
六一儿童节活动总结
2014/08/27 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android