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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
dedecms模板标签代码官方参考
Mar 17 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php无限遍历目录示例
Feb 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
php实现微信发红包
Dec 05 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
Laravel中的Auth模块详解
Aug 17 PHP
PDO::quote讲解
Jan 29 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中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
javascript 函数调用规则
2009/08/26 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JavaScript运算符小结
2015/06/03 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
BootStrap 导航条实例代码
2017/05/18 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
python脚本监控docker容器
2016/04/27 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Python如何安装第三方模块
2020/05/28 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
机械生产实习心得体会
2016/01/22 职场文书
Spring中的@Transactional的工作原理
2022/06/05 Java/Android