php 模板编译类,一个简单的模板类--编译型的(simplet类增强后)

在上次发布的simplet类之后(http://bbs.phpchina.com/thread-85257-1-1.html),发现有很多缺陷,例如不支持多维数组,注释和没有缓存功能,这次我把这些功能都加进去了!!!

大家有兴趣的话,我下次出个教程,来谈谈我写这个类的一些思想和方法!!!支持的话可以跟贴支持我!

PHP代码:

simplet.class.php

", $content);

$content = preg_replace("//", " \\$$1_val) { ?>",$content);

$content = preg_replace("//", "", $content);

$content = preg_replace("//", " \\$$3) { ?>", $content);

$content = preg_replace("//", "", $content);

$content = preg_replace("//", "", $content);

$content = preg_replace("//", "", $content);

$content = preg_replace("//","", $content);

$content = preg_replace("/([^]{0,})/", "", $content);

if (preg_match_all("/)]{1,})}%>/", $content, $files)) {

$this->comp($this->templates_dir . $files[1][0]);

}

$content = preg_replace("/)]{1,})}%>/", "templates_c_dir}simplet_comp_$1.php'; ?>", $content);

echo $content;

$fp = fopen($this->templates_c_dir . 'simplet_comp_' . basename($filename) . '.php', 'w');

if(!fwrite($fp, $content)) {

throw new Exception('Can not write content in the ' . $filename);

}

fclose($fp);

} catch (Exception $e) {

echo $e->getMessage();

}

return true;

}

public function display($filename) {

$filename = $this->templates_dir . $filename;

if(!file_exists($filename)) {

return false;

}

$t_filename_c = $this->templates_c_dir . 'simplet_comp_' . basename($filename) .'.php';

if(!file_exists($t_filename_c) || filemtime($t_filename_c) < filemtime($filename)) {

$this->comp($filename);

}

if($this->cache > 0) {

$cache_file = $this->cache_dir . basename($filename);

if(!file_exists($cache_file) || (time() - filemtime($cache_file)) > $this->cache) {

ob_start();

foreach ($this->t_vars as $key => $val) {

$$key = $val;

}

include($t_filename_c);

$content = ob_get_contents();

ob_end_clean();

$fp = fopen($cache_file, 'w');

fwrite($fp, $content);

fclose($fp);

echo $content;

unset($content);

} else {

include($cache_file);

}

} else {

foreach ($this->t_vars as $key => $val) {

$$key = $val;

}

include($t_filename_c);

}

}

}

?>

PHP代码:

test.php

$t = new SimpleT();

$t->cache(10);//开启cache功能,并且设置为过期时间为10秒

$t->assign('arrays', array(array('hello','world')));

$t->assign('condition',false);

$t->display('index.php');

?>

PHP代码:

index.php(模板文件,放在templates/文件夹里)

这里是注释

下面是多维数组循环

下面是条件判断

Condition is true

下面是包含文件()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值