注:smarty libs版本为3.0下
1.注册一个函数
<?php
require_once "libs/smarty/Smarty.class.php";
$smarty = new Smarty();
$smarty->template_dir=$_SERVER['DOCUMENT_ROOT'].'/smarty_files/templates';
$smarty->compile_dir=$_SERVER['DOCUMENT_ROOT'].'/smarty_files/templates_c';
//这是注册一个函数.
$smarty->register_function("myfun1","test");
//自定义函数
function test($args){
$str="";
for($i=0;$i<$args['times'];$i++){
$str.="<br/><font size=5 color='red'>".$args['content']."</font>";
}
return $str;
}
$smarty->display("templates/index.tpl");
?>
index.tpl
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
{myfun1 times="5" content="hello,world"}
</html>
hello,world
hello,world
hello,world
hello,world
hello,world
2. smarty还有一种块方式调用标签的方式
<?php
require_once "libs/smarty/Smarty.class.php";
$smarty = new Smarty();
$smarty->template_dir=$_SERVER['DOCUMENT_ROOT'].'/smarty_files/templates';
$smarty->compile_dir=$_SERVER['DOCUMENT_ROOT'].'/smarty_files/templates_c';
$smarty->register_function("myfun1","test");
//自定义函数
function test($args){
$str="";
for($i=0;$i<$args['times'];$i++){
$str.="<br/><font size=7 color='blue'>".$args['content']."</font>";
}
return $str;
}
//smarty 块的方式调用函数.
$smarty->register_block("myfun2","test2");
function test2($args,$content){
$str="";
for($i=0;$i<$args['times'];$i++){
$str.="<br/><font size='".$args['size']
."' color='".$args['color']."'>".$content."</font>";
}
return $str;
}
$smarty->display("templates/index2.tpl");
?>
index2.tpl
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
{myfun2 times="5" color="red" size="5"}
hello world
{/myfun2}
</html>
hello,world
hello,world
hello,world
hello,world
hello,world