该模板引擎Smarty及其使用实例的工作原理
模板引擎是一个用于合并模板文件和数据内容的程序。便于网站开发,便于代码分离和维护。了解模板是了解其工作原理的最佳方法,以便于实现通用连接。模板文件,通常是HTML、XML、JS和其他类型的文件,没有一个模板引擎在Web上显示的数据,我们需要在PHP输出HTML,并使用模板,只要数据是模板引擎的程序,然后告诉它的模板文件,自然会把数据和页面返回或组合输出,至少有1个。模板函数为模板引擎提供数据。2。指定模板的功能。3。对输出结果的功能。一般来说,为了方便程序员使用的模板引擎,开发者将把它的功能在一定程度上封装成一个类,一个模板引擎对象,实例化后的对象,一个对象的属性和方法,Smarty属性和方法在smarty手册找到对象。首先,分配方法,提交的数据模板的方法。该方法不指定一个模板文件合并到输出的方法,输出的方法有两个显示直接输出获取回报良好的HTML代码,主要用于输出分配因为我们显示的数据往往是多样的,可以是一个,可能是一个数组是多维数组,在不同的情况下应该如何向Smarty是一个问题,如何显示相应的也是一个提交后由Smarty引擎使用的解释方法是将HTML文件转换为一个PHP文件的问题,然后在每一项任务,并执行相应的PHP文件的不同格式的数据,它有一个固定的写作方式,我们需要标志着这种写作风格做相应的模板文件,默认的模板标签使用。是一对标记如{一} { }美元,这相当于美元的回声;我们需要在PHP中有相应的分配过程,变量$smarty ->分配(一
复制代码代码如下所示:
阵列({id} = > 1,{标题} = >题名);
我们的模板需要有几个对应的标记,例如
复制代码代码如下所示:
{ $标题}
{内容}
赋值太麻烦了,赋值方法支持数组直接赋值,$ =从数据库中读取数据,
Smarty美元->分配(合行);Smarty将数据索引自动分配,但在这个时候,为了避免造成变量冲突,我们希望直接赋值的数组,例如。
复制代码代码如下所示:
$ =数据库中的数据读出,
Smarty美元->分配(行
如果我们在模板标签{ $行}输出时,我们只能看到阵列直接在php数组是echo $行{标题},在PHP中的特定的输出;对Smarty符号的规定是一个点,{ $行。标题},这种方式类似于
复制代码代码如下所示:
echo $行{标题}
每个模板的对应规则都是它的模板,如果你想显示的是一个文章列表,假设MySQL返回10个数据给我们,显示10个数据,并且索引它们完全相同,根据编程思想的结果知道下面的假设。
复制代码代码如下所示:
一千一百一十一
二百二十二
三百三十三
四千四百四十四
如果这是我们想要出口的东西
首先,这是一个数量的数量,当然,是一个数组。
复制代码代码如下所示:
$数组();
当($ = data){
$;
}
Smarty美元->分配(一览表
把数据转换成时间像模像样的数组,因此列表变量是一个二维数组,如果我们有这样一个二维数组,其中所有的值显示,最好的方法是循环输出,同样的Smarty提供了的循环节的标记和我们。foreach
部分标记格式
复制代码代码如下所示:
{节名称=循环的名称,名称循环=数据量}
…
{节}
{节名称= i循环= $列表}
{列表$ { } }
{节}
上面的代码看起来像一个for循环,但是在i $中的for循环仅仅是名称,$ },这个方法可以从数组中获得一个卷,正如我所说,$列表是一个二维数组,数组是$ I }。
写另一个方式是,foreach的语法如下:
复制代码代码如下所示:
{每个关键=索引项=价值=赋值变量}
{ $ }:{项目}
{一} /
{ Foreach项= V = $列表}
{ $ v.title }
{一} /
每个变量的周期表分为V量,然后显示从变量指定的指标,除了循环标志,它还提供了一些常见的语法标记,如包括文档、确定的条件下,我们知道,HTML不能包含一个文件,如头,但提供了一个{有}标记Smarty,可以像PHP文件,如{包括文件=文件路径}这个标签的格式是固定的,而路径必须在模板引擎指定的路径和条件语法和PHP如果条件判断,语法如下
复制代码代码如下所示:
{变量值或数量} =
实时显示的值
{人}
虚假是显示器的价值。
{如果}
不能写其他只有当真正的显示内容,如一个常见的显示在登录端口登录登录窗体显示在一个用户信息后,假设一个卷已经被分配到$用户名用户登录模板,如这个卷的数量没有登录在一个用户名空,我们可以写。
复制代码代码如下所示:
{如果用户名为$!= }
欢迎到{ $用户名}
{人}
请先登入
{如果}
只要我们准备在PHP变量赋给Smarty,我们可以标记除了这些标签的自我参考手册。
二是可变的调节,大部分时间我们会从数据库中的数据,没有处理输出,如日期格式显示日期,只可作为行输出的内容必须被替换为了显示相应页面的外观,这个时候我们可以使用内置的Smarty变量调整,格式如下
复制代码代码如下所示:
{输出可变的|调节器参数:}
如果显示内容部分,所有更改都显示如下
复制代码代码如下所示:
{ $内容| nl2br }
日期的格式可以用在date_format如手册
复制代码代码如下所示:
Index.php:
美元=新的Smarty Smarty;
Smarty美元->分配(昨天,strtotime('1'));
Smarty美元->显示('index。物流);
Index.tpl:
{ $ Smarty。现在| date_format }
{ $ Smarty。现在| date_format:% % % %,B,Y}
{ $ Smarty。现在| date_format:%:%:%s}
昨天| date_format } { $
{ $昨天| date_format:% % % %,B,Y}
{ $昨天| date_format:%:%:%s}
输出:
2001年2月6日
二月星期二,6, 2001
14:33:00
2001年2月5日
二月星期一,5, 2001
14:33:00
我们可以使用PHP处理它,然后分配它,这不是真的。
写入以下配置
复制代码代码如下所示:
< PHP
定义(根
/ /加载Smarty
需要根。'lib / Smarty。类。php;
samrty美元=新(Smarty); / /实例化Smarty类
目录配置
Smarty美元-> settemplatedir(根。'templates )
-> setcompiledir(根。'templates_c)
-> setpluginsdir(根。'plugins )
-> setcachedir(根。'cache )
-> setconfigdir(根。'configs );
Smarty美元->缓存= false; / /是否开启缓存
Smarty -> left_delimiter =美元< { '; / /着手防止冲突和JS CSS等。
Smarty -> right_delimiter =美元} >;
>