<?php
/*
*@简单的Smarty的自定义模板
*/
class MyTpl(){
//模板中的变量
protected $tpl_vals=array();
/*
*@显示模板
*/
public function display($tpl){
$contents=file_get_contents($tpl);
foreach ($this->tpl_vals as $key => $val) {
$contents = str_replace("{\$".$key."}", $val, $contents);
}
$complieFile='complie/'.md5($tpl).'.php';
file_put_contents($complieFile, $contents);
require_once $complieFile;
}
/*
*@显示数据
*/
public function assign($name,$value){
$this->tpl_vals[$name]=$value;
}
}
$tpl= new MyTpl();
$tpl->assign('test','this is a test');
$tpl->display('xxx.html');
/*
*@简单的Smarty的自定义模板
*/
class MyTpl(){
//模板中的变量
protected $tpl_vals=array();
/*
*@显示模板
*/
public function display($tpl){
$contents=file_get_contents($tpl);
foreach ($this->tpl_vals as $key => $val) {
$contents = str_replace("{\$".$key."}", $val, $contents);
}
$complieFile='complie/'.md5($tpl).'.php';
file_put_contents($complieFile, $contents);
require_once $complieFile;
}
/*
*@显示数据
*/
public function assign($name,$value){
$this->tpl_vals[$name]=$value;
}
}
$tpl= new MyTpl();
$tpl->assign('test','this is a test');
$tpl->display('xxx.html');

本文介绍了一种基于PHP的自定义简易Smarty模板引擎实现方式。通过创建MyTpl类,实现了模板变量赋值及模板展示的功能。该实现利用字符串替换完成变量解析,支持将模板编译为PHP文件并执行。
1108

被折叠的 条评论
为什么被折叠?



