smarty模板技术

Posted 不知名程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了smarty模板技术相关的知识,希望对你有一定的参考价值。

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():获取编译目录

 

~~~~~~~~~~~~~~~

 

以上是关于smarty模板技术的主要内容,如果未能解决你的问题,请参考以下文章

合并_08smarty模板技术(3days)

Smarty模板引擎

PHP 随笔---Smarty模板引擎技术基础+MiniSmarty 01-02

php模板引擎smarty

Smarty优缺点

smarty(原理概述)