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+DBM的同学录程序(2)
Oct 09 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php URL跳转代码 减少外链
Jun 25 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
php遍历树的常用方法汇总
Jun 18 PHP
php文件读取方法实例分析
Jun 20 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 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 Memcache 中实现消息队列
2009/11/24 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php中file_exists函数使用详解
2015/05/08 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
使用JQuery进行跨域请求
2010/01/25 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
详解javascript函数的参数
2015/11/10 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
生产总经理岗位职责
2013/12/19 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python