Smarty是一个使用php写出来的模版引擎,用来将本来与html代码混杂在一块儿PHP代码逻辑分离,实现先后端分离。
php
Smarty模板优势:html
分析模板技术:是利用php语言读取模板文件完成字符串替换掉的过程后端
详解代码以下:缓存
html页面: <body> <font color = 'red'>{id}</font><br> <font color = 'green'>{name}</font><br> <font color = 'bule'>{age}</font><br> </body> 后台逻辑部分 // $id=8; $name='zhangsan'; $age = 12; $str = file_get_contents('demo1.html');//模板文件的全部内容 $str = str_replace('{id}', $id, $str);//替换id $str = str_replace('{name}', $name, $str); $str = str_replace('{age}', $age, $str); echo $str; ?>
面向对象技术实现模板功能的封装前后端分离
1 <?php 2 class Template 3 { 4 //属性 5 public $vars; //保存要替换的标记和数据的内容 6 public $left_delimiter = '{*'; //左分隔符 7 public $right_delimiter = '*}'; //右分隔符 8 //方法 9 public function assign($key,$value) 10 { 11 12 $this->vars[$key] = $value; 13 } 14 public function display($file) //file表示模板名 15 { 16 $str = file_get_contents($file); //从模板中读取多有内容,并将内容放入$str中 17 foreach ($this->vars as $key => $value) //$key 键名(模板标记) $value 值 18 { 19 $str = str_replace($this->left_delimiter.$key.$this->right_delimiter, $value, $str); 20 } 21 echo $str; 22 //file_put_contents('bak.html', $str); 23 } 24 } 25 ?>
注意:assign(‘name’,’zhangsan’);这句的时候其实尚未进行数据替换,而是把传入的数据保存在vars[]中,当display的时候才进行数据替换函数