您的位置:首页 > 编程语言 > PHP开发

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

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

Smarty v2.6.26 配置:

<?php
include_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 实例:

<?php
include_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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: