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语法(1)
Oct 09 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP explode()函数用法讲解
Feb 15 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Python 中Pickle库的使用详解
2018/02/24 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python中的print()输出
2019/04/12 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
优秀本科毕业生自荐信
2014/07/04 职场文书
出生医学证明书
2014/09/15 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
端午节活动总结报告
2015/02/11 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS