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下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
PHP使用range协议实现输出文件断点续传代码实例
Jul 04 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 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
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
js document.write()使用介绍
2014/02/21 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
简单解析Django框架中的表单验证
2015/07/17 Python
Python制作刷网页流量工具
2017/04/23 Python
python已协程方式处理任务实现过程
2019/12/27 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
中专生自荐信
2013/10/12 职场文书
工作交流会欢迎词
2014/01/12 职场文书
组织关系转移介绍信
2014/01/16 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
电子信息工程自荐信
2014/05/26 职场文书
2014年征兵标语
2014/06/20 职场文书
会议欢迎标语
2014/06/30 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
关于长城的导游词
2015/01/30 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
拉贝日记观后感
2015/06/05 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python