【PHP】Smarty 模板引擎的使用总结

来源:互联网 发布:优化资本结构 编辑:程序博客网 时间:2024/05/03 00:09

    Smarty 是一个使用 PHP 写出来的模板引擎,是目前业界最著名的 PHP 模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与 HTML 代码混杂在一起 PHP 代码逻辑分离。简单的讲,目的就是要使 PHP 程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

Smarty v2.6.26 配置:

<?phpinclude_once './Smarty/Smarty.class.php';$smarty = new Smarty();$smarty->config_dir= './Smarty/Config_File.class.php';$smarty->template_dir= './Templates';$smarty->compile_dir= './Templates_c';$smarty->caching= true;$smarty->cache_dir= './Cache';$smarty->cache_lifetime = 15;$smarty->left_delimiter= '{';$smarty->right_delimiter= '}';?>

PHP 实例:

<?phpinclude_once 'smarty.inc.php';$name = 'dymyw';$arr = array(array('id'=>'1', 'name'=>'C'), array('id'=>'2', 'name'=>'JAVA'), array('id'=>'3', 'name'=>'PHP'));$time = 1333333333;$arr1 = array('html', 'css', 'javascript');// 局部缓存function insert_get_time(){return date("Y-m-d H:i:s");}$smarty->assign("name", $name);$smarty->assign("arr", $arr);$smarty->assign("time", $time);$smarty->assign("arr1", $arr1);// 生成静态页面$file_dir = './www/'.date("Ymd").'/';if ( !is_dir($file_dir) ){mkdir( $file_dir, 0777, true );}$file_name = "index.htm";$file = $file_dir.$file_name;$fp = fopen($file, "w");$content = $smarty->fetch("index.htm");fwrite($fp, $content);fclose($fp);$smarty->display("index.htm");?>

HTML 模版:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Smarty test by dymyw</title></head><body>用户名:{$name}<br /><br />多维数组:<br />{section name=i loop=$arr}{$arr[i].id} -- {$arr[i].name}<br />{/section}<br />格式化时间:{$time|date_format:'%Y-%m-%d'}<br /><br />缩进:{$name|indent:10:' '}<br /><br />截取:{$name|truncate:4:'...'}<br /><br />一维数组:<br />{foreach from=$arr1 key=k item=v}{$k} -- {$v}<br />{/foreach}<br /><br />去除空格:<br />{strip}<table><tr><td><font color='blue'>dymyw</font></td></tr></table>{/strip}<br />局部缓存:<div>{insert name="get_time"}</div></body></html>

 htm 静态页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Smarty test by dymyw</title></head><body>用户名:dymyw<br /><br />多维数组:<br />1 -- C<br />2 -- JAVA<br />3 -- PHP<br /><br />格式化时间:2012-04-02<br /><br />缩进:          dymyw<br /><br />截取:d...<br /><br />一维数组:<br />0 -- html<br />1 -- css<br />2 -- javascript<br /><br /><br />去除空格:<br /><table><tr><td><font color='blue'>dymyw</font></td></tr></table><br />局部缓存:<div>2012-07-17 06:36:43</div></body></html>


 

原创粉丝点击