smarty简介:
smarty是php领域流行的一种模板技术,免费,其核心就是一个类(smarty类)。
我们的主要目标就是学习怎么使用这个类。
smarty的特点:
速度快(因为第二次执行的时候使用第一次执行时生成的编译文件)
缓存技术(正是因为缓存技术,使得smarty模板技术不太适合那些对于实时性更新要求比较高的,比如股票信息)
插件技术(正是因为插件技术,使得smarty可以被扩展)
编译型(访问一个页面一次之后会生成一个编译文件,第二次再来访问这个页面的时候,就会访问这个编译文件,从而提高访问速度);
$smarty->assign(‘变量名‘,数据)
smarty内部变量:
$smarty.now:获取当前时间,是一个时间戳(整数)
$smarty.get:获取到$_GET数据,$smarty.get.xx相当于$_GET[‘xx‘]
$smarty.post:获取到$_POST数据, $smarty.post.xx相当于 $_POST[‘xx’]
$smarty.cookies:获取到$_COOKIE数据, $smarty.cookies.xx相当于 $_COOKIE[‘xx’]
$smarty.session:获取到$_SESSION数据, $smarty.session.xx相当于 $_SESSION[‘xx’]
$smarty.const: 获取到php程序中的常量数据
$smarty.config:获取到配置数据
内建函数:
就是写在模板文件中,用于实现一定功能的smarty语句或语法。
模板文件中,有时候不是简单的“输出数据”,而可能还会需要一些其他的功能。内建函数就起这个作用。
跟前面的变量对比来说:
变量(数据)只是单纯的输出,
但:
内建函数并不是输出数据,而是在模板中实现某种功能,
,比如:
载入配置文件,实现if判断,实现循环逻辑。。。。
常用内置函数有:
{config_load}:载入配置文件。
{include}:载入(引入)其他模板文件到当前模板文件。
{if}:用于实现if语句。
{for}:用于实现循环。
{foreach}:用于对数组进行遍历。
{while}:用于实现循环。
{literal}:用于标识一段代码排除在smarty的处理逻辑中——即不被smarty处理!通常就是css代码和js代码中的大括号,跟smarty的大括号有冲突,用此来解决。
literal函数的使用:
对于解决smarty与跟css(和js)语法的可能冲突,还有一个方法:
修改smarty的“边界符”;
$smarty->left_delimiter = “<{“;
$smarty->right_delimiter = “}>“;
则所有的模板中的smarty边界符都要按上述来做,比如:
<{$v1}>
<{if $age > 18 }>
。。。。。
<{/if}>
自定义函数:
也是函数,只是不作为smarty里模板文件中的核心函数,它常常用于构建并输出一些html代码内容。
smarty常量:
template_dir:表示“模板文件所在目录”;
template_dir:表示“模板文件所在目录;
left_delimiter:表示smarty语法的左边界。
left_delimiter:表示smarty语法的左边界。
smarty常用方法:
assign():变量赋值
display():加载模板
setTemplateDir():设置模板目录
setCompileDir():设置编译目录
getTemplateDir():获取模板目录
getCompileDir():获取编译目录
~~~~~~~~~~~~~~~