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的時候才進行數據替換函數