php模版静态化原理
看了一些开源系统的,简单的总结一下php的模板及静态原理。
先贴代码,再做解释。
index.php
- <?php
- //如果已存在静态页面,直接读取并显示
- if(file_exists('index.html'))
- {
- echo file_get_contents('index.html');
- }
- else
- {
- //这里把需要的变量都附好值
- $var = "Hello,World.";
- //开启输出缓存
- ob_start();
- //这里调用模板,模板里嵌入一些PHP标签,用来显示变量的值
- require_once('template.php');
- //这里得到输出缓存,也就是调用模板后,将来要显示到页面上的内容
- $out = ob_get_contents();
- //把要显示的内容保存成一个文件
- file_put_contents('index.html',$out);
- //输出
- ob_end_flush();
- }
template.php
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>HTML</title>
- </head>
- <body>
- <hr/>
- <p>
- <?php echo $var;?>
- </p>
- <hr/>
- </body>
- </html>
代码解释见注释。
转自http://baiyuxiong.iteye.com/blog/796644
php模版静态化原理的更多相关文章
- 六、smarty-缓存控制前的页面静态化原理
页面静态化可以实现优化服务,对大流量访问网站非常至关重要 为什么页面静态化, 1. 不去执行数据库连接 2. 不去执行SQL语句 设置按时间更新, 1. 按时间更新,如果缓存文件设置1小时 如下 ...
- php模版静态化技术
PHP页面的静态化很有必要,尤其是在CMS系统中,一些内容一旦生成,基本上不会有变化,这时如果用html将页面静态化,无疑会减少服务其解析PHP页面的负担.以下是看书学来的PHP静态化技术,记录之以备 ...
- Spring MVC + freemarker实现半自动静态化
这里对freemarker的代码进行了修改,效果:1,请求.do的URL时直接生成对应的.htm文件,并将请求转发到该htm文件2,自由控制某个页面是否需要静态化原理:对org.springframe ...
- 网站优化之使用Free marker静态化网站文章页
博客做出来的时候就想要把一些栏目和文章页都静态化处理,当时没啥时间搞,就一直没去弄.但是最近的工作就是做网站,用cms快速搭出了几个网站,cms搭建网站是真的方便啊 如果没有需要二次开发实现的功能,那 ...
- java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
java 企业网站源码 前后台都有 静态模版引擎, 代码生成器大大提高开发效率 系统介绍 点击:获取地址 : 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态 ...
- java 企业网站源码模版 屏幕自适应 有前后台 springmvc SSM 生成静态化引擎
前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问 ...
- java 企业 网站源码 模版 屏幕自适应 有前后台 springmvc SSM 生成静态化
前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问 ...
- freemark 页面静态化
1. 页面静态化是什么? 页面静态化有非常多含义,在WEB开发中.静态网页一般理解为站点中大部分超级链接所引用的页面是单独的HTML静态页面文件(如.htm..html等页面文件,html语言本身是静 ...
- 页面静态化技术Freemarker技术的介绍及使用实例.
一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 ...
随机推荐
- kotlin第一个项目的搭建
怎么在Android Studio中使用Kotlin? 1.使用Android Studio的插件 2.将Android Studio升级到3.0版本:目前不推荐,因为3.0的版本目前还是Dev Ch ...
- 【Oracle】DG中物理备库、快照备库的相互转换
一.物理备库切换快照备库 1. 如果正在运行日志应用,先停止 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 2. 确保数据库为MOUN ...
- OpenCV:OpenCV中的 parallel_for 和opencv parallel_for_
OpenCV使用OMP完成并行运算,在使用AdaBoost检测的时候,在cascadedetect.cpp 里面,大量使用 parallel_for_(Range(0, stripCount), Ca ...
- VC维与DNN的Boundary
原文链接:解读机器学习基础概念:VC维来去 作者:vincentyao 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effecti ...
- Windows Live Writer 历史Blog修改的功能
其实 WLW 有历史Blog修改的功能,我只是一直没有找到,就在打开“最近发布的日志”里面, 位于屏幕的右侧“打开”列表下. 最近发现记忆力越来越差了,BLOG看来是必须的了.
- express创建第一个web应用
Express 在初始化一个项目的时候需要指定模板引擎,默认支持Jade和ejs. 这里我们使用ejs模板引擎:(关于ejs的介绍可以先从百科里面了解一个大概)EJS是一个JavaScript模板库, ...
- python中*的用法
在python中,很多情况下会用到*,下面举一些例子来说明*的用法 1.数字计算中,*代表乘法,**代表求幂 print('2乘以3值为:%s'%(2*3)) print('2的3次方值为:%s'%( ...
- java线程启动原理分析
一.前言不知道哪位古人说:人生三大境界.第一境界是:看山是山看水是水:第二境界是看山不是山看水不是水:第三境界:看山还是山看水还是水.其实我想对于任何一门技术的学习都是这样.形而上下者为之器,形而上者 ...
- android keystore的生成和使用
android要求所有的程序必须有签名,否则就不会安装该程序.在我们开发过程中,adt使用debug keystore,在 preference->android->buid中设置.deb ...
- LCS,LIS,LCIS
网站:CSUST 8月3日(LCS,LIS,LCIS) LCS: 以下讲解来自:http://blog.csdn.net/yysdsyl/article/details/4226630 [问 ...