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 前一天或后一天的日期
Jun 28 PHP
深入解析php中的foreach问题
Jun 30 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
php实现连接access数据库并转txt写入的方法
Feb 08 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP Primary script unknown 解决方法总结
Aug 22 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版本的cron定时任务执行器使用实例
2014/08/19 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
用javascript实现画板的代码
2007/09/05 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
python求众数问题实例
2014/09/26 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
企业活动策划方案
2014/06/02 职场文书
老兵退伍标语
2014/10/07 职场文书
中层干部考核评语
2015/01/04 职场文书
团委工作总结2015
2015/04/02 职场文书