• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

初识PHP的smarty模板发动机

php 搞代码 4年前 (2022-01-24) 12次浏览 已收录 0个评论

初识PHP的smarty模板引擎
php是 嵌入式HTML脚本语言,为了将HTML和php代码分离,即所谓的逻辑层和表现层,这就是模板引擎的目的。为了达到该目的 模板引擎需具备的功能有:1.存储变量;2.读取模板文件;3.结合前两个生成输出。Code如下:

test01.php

<?php

$name=’xiaoshenge’;

?>

test02.php

test

<body>

name=<?php echo $name; ?>

test03.php

<?php

include’test01.php’;

include’test02.php;

?>

当然这里只是简单的模拟如何实现php模板引擎的功能,在php开源社区里著名的smarty就是封装了上面的功能。保存数据->加载模板->编译生成输出文件。有关 smarty的应用具体参考手册,这里只是解释其功能原理。

BTW:记录一下smarty缓存遇到的问题。

如果开启smarty缓存,第一次执行时会将其编译好的输出文件保存到cache目录中,在程序中通过smarty的is_cache()函数检测其 cache文件是否过期,若过期会更新缓存,如果没有过期会自动调用cache文件,省去编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改,这里的更改是是通过检测文件的最近修改时间实现的,不是通过检测模板文件内容。
阻止一个模板文件的 整篇被缓存 :
index.php:

require(‘Smarty.class.php’);
$smarty = new Smarty;
$smarty->caching = true;

function smarty_block_dynamic($param, $content, &$smarty) {
return $content;
}
$smarty->register_block(‘dynamic’, ‘smarty_block_dynamic’, false);

$smarty->display(‘index.tpl’);

index.tpl:

Page created: {“0″|date_format:”%D %H:%M:%S”}

{dynamic}

Now is: {“0″|date_format:”%D %H:%M:%S”}

… do other stuff …

{//本文来源gao@!dai!ma.com搞$$代^@码5网@搞代gaodaima码dynamic}
当重新加载这个页面,你将会注意到这两个日期不同。一个是“动态“,一个是“静态”。你能够在{dynamic}…{/dynamic}之间作任何事情,并且保证它将不会像剩下的页面一样被缓存。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:初识PHP的smarty模板发动机

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址