smarty模板引擎

Smarty下载

解压

smarty文件夹下的文件。

将Smarty的核心代码拷贝到站点下。

Smarty.class.php

Templates:默认模板文件夹

Templates_c:默认存放文件的文件夹

Cache:存放缓存

Configs:存放配置文件

定义目录分隔符:

 

 

注释

{*这是注释*}

Smarty注释和HTML注释的区别

 

变量

普通变量

第一种声明方法:

第二种声明方法:在模板文件中声明

取值{$name}{$sex}

保留变量

在Smarty中有一个特殊的变量“smarty”,这个变量是保留变量,用来访问用户请求的信息,系统环境变量,常量,类似于PHP中的超全局变量。

1、获得get提交的值:{$smarty.get.name}        $_GET

 

2、获得post提交的值:{$smarty.post.变量名}  $_POST

3、万能的获得值的方法 {$smarty.request.变量名} $_REQUEST

4、获取会话

在php中定义一个会话

在模板中获取会话

5、获取cookie,(第一次获取会报错,因为第一次是设置cookie)

6、显示常量

 

7、取出服务器信息

{$smarty.server.REMOTE_ADDR}

8、取出时间戳

{$smarty.now}

9、其它

{$smarty.version}

版本号

{$smarty.ldelim}

左界定符

{$smarty.rdelim}

右界定符

 

配置变量

  1. 在站点下新建configs文件夹,在文件夹中新建smarty.conf文件代码如下:

  1. 在模板文件中导入文件,并取值

注意:

原因:smarty将css的{解析了。

解决方法:

  1. 更换定界符。
  2. 加空格,但是不推荐使用

  1. 使用{literal}{/literal} literal:原样的,原义的。推荐使用。

3.配置文件中的章节(configs文件夹中)

调用章节

配置变量的注意:

  1. 配置文件中的注释“#” #注释内容
  2. 中括号表示节
  3. 节定义的相当于局部变量

数组

smarty对数组的访问

  1. 数组【下标】
  2. 数组.下标

Foreach循环

如果遍历的数组不存在,则执行{foreachelse}部分

foreach内部关键字

语法

描述

值变量@iteration

从1开始的序号

值变量@index

从0开始的索引

值变量@first

判断是否是第一个元素

值变量@last

判断是否是最后一个元素

值变量@total

数组的长度

值变量@show

数组是否为空

 

判断

{if 条件}

{elseif 条件}

{else}

{/if}

 

section循环

只支持索引数组,不支持关联数组。

{section name='自定义变量名' loop='被遍历的数组'}

{/section}

 

section内置关键字

{$smarty.section.自定义变量名.iteration}

从1开始

{$smarty.section.自定义变量名.index}

从0开始

{$smarty.section.自定义变量名.first}

是否为第一个

{$smarty.section.自定义变量名.last}

是否为最后一个

其他循环

for循环

 

while循环

表单

html_checkboxes(复选框)

第一种做法(使用outputvalues)

对应的php文件

预览网页源

第二种做法(用options代替outputvalues

 

html_options(下拉列表)

 

{html_options}

{html_radio}单选按钮

 

把已经有的HTMLSmarty结合

 

Smarty布局(一)

1、在站点下新建一个layout文件夹,在文件夹下新建一个template1.html布局文件代码如下:

2、在模板中的代码

一个模板中可以有多个block.

Smarty布局(二)

可以把中间的部分全部替换,也可以把右边的部分替换,这样就可以实现一个布局文件用于多个模板。

新建布局文件

模板文件中替换main

只替换右侧

包含文件

{include file='文件的路径'}

举例:header.html

Demo9_3.html

Demo9.php

如果公共部分多:用布局文件

如果公共部分少:用包含文件

变量修饰器

使用truncate截取字符串,需要开启服务(php.ini)

在用‘truncate’截取字符串的时候,默认情况下用utf8编码,一个中文在utf8下占用三个字节,容易出现乱码。

缓存

$smarty->caching=1|true;//开启smarty缓存,调用display的时候,如果有缓存,就从缓存中读取。(会自动生成cache文件夹,并生成缓存文件)

缓存文件的更新

  1. 删除对应的缓存
  2. 强制更新 $smarty->force_cache
  3. 更新模板,布局文件、包含文件
  4. 设置缓存的声明周期。

 

猜你喜欢

转载自blog.csdn.net/benben0729/article/details/81183379