Smarty模板引擎

模板引擎的作用是什么

对PHP语言熟悉的程序员就会知道有个Smarty的名词,那么这个具体是什么呢?smarty是一个使用PHP编写的PHP模板引擎,是目前业务最著名,功能最强大的一种PHP模板引擎,程序逻辑逻辑与外在内容的分离,简单的讲就是让PHP和HTML相分离,让程序员和美工同时进行开发,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑。

官网地址

Smarty

文件目录

粗略的看一下几个主要文件目录,根目录下有个demo文件夹,里面放的就是使用smarty的一些例子,那么还有一个libs文件夹,里面放置的是smarty类文件,其中Smarty.class.php就是模板引擎的主文件,那么用的时候就是引入这个主文件进行实例化然后操作,plugins这个目录放置的是smarty的插件,其它目录有兴趣的下去了解一下。

Smarty的引入与实例化

将Smarty的demo文件和主要类文件提出来

<?php
require_once '/smarty/Smarty.class.php';
$smarty = new Smarty();

Smarty的配置

1、五配置

$smarty->left_delimiter = '{';//左定界符
$smarty->right_delimiter = '}';//右定界符
$smarty->template_dir = 'tpl';//html模板的地址
$smarty->compile_dir = 'template_c';//模板编译生成的文件
$smarty->cache_dir = 'cache';//缓存
$smarty->caching = true;//开启缓存
$smarty->cache_lifetime = 120;//缓存时间

在模板里面出现{}那么里面的任何语句都交给smarty去处理,在根目录下创建三个目录。

2、常用两方法

//模板变量赋值
$smarty->assign('变量名','变量值');
//展示模板
$smarty->display('test.html');

Smarty基本语法

//模板变量赋值
$arr = array('title'=>'网站标题','content'=>'网站内容');
$smarty->assign('arr',$arr);
//模板变量取值
{$arr.content} OR {$arr['content']}

Smarty变量调节器(相当于函数)

手册

1、单词首字母大写

$smarty->assign('str','hello word');
{$str|capitalize}

2、字符串连接

$smarty->assign('str','hello word');
{$str|cat:' gsy'}

3、日期格式化

$smarty->assign('date',time());
{$date|date_format}

4、为未赋值或为空的变量指定默认值

$smarty->assign('data');
{$data|default:'apple'|capitalize}

5、转码 escape 用于html转码,在没有转码的变量上转换单引号,十六进制转码,十六进制美化,或者javascript转码,默认是html转码

$smarty->assign('url','https://www.smarty.net/docs/zh_CN/language.modifier.escape.tpl');
{$url|escape:'url'}

为什么要对url转码?因为在程序里面有很多符号会影响到PHP等等脚本语言的正常运转。
6、转换大小写

$smarty->assign('str','Happy New Year');
{$str|lower}
{$str|upper}

7、将所有换行符替换成HTML标签

$smarty->assign('str',"Happy New Year\nHappy New Year\nHappy New Year");
{$str|nl2br}

条件判断句式

1、常用的条件修饰符

eq(==)
neq(!=)
gt(>)
lt(<)

2、基本句式

{if $name eq 'gsy'}
Hello gsy
{elseif $name eq 'wyx'}
Hello wyx
{else}
Hello
{/if}

使用修饰符时必须和变量用空格隔开

Smarty的foreach循环

$arr = array(0=>array('name'=>'霍建华','age'=>'20'),1=>array('name'=>'林心如','age'=>'18'));
$smarty->assign('arr',$arr);
{foreach item=person from=$arr}
<p>姓名:{$person.name}</p>
<p>年龄:{$person.age}</p>
{/foreach}
//从smarty3开始支持与PHP foreach一样的语法
{foreach $arr as $person}
<p>姓名:{$person.name}</p>
<p>年龄:{$person.age}</p>
{/foreach}

Smarty的文件引用

//sitename属性仅仅只能在引入文件中使用
{include file='header.html' sitename='网站主体'}

使用PHP内置函数

$smarty->assign('date',time());
{'Y-m-d'|date:$date}
$smarty->assign('str','Hello word');
{'word'|str_replace:'Beijin':$str}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 一、模板引擎简介 什么是模板? 所谓模板就是指无PHP代码,只有HTML+CSS+JS。 什么是模板引擎? 模板...
    十亩鱼塘阅读 6,228评论 2 16
  • 1)、模板引擎概念 ❖ 模板引擎的功能是实现逻辑与显示相分离,使程序设计者可以专注于程序功能的开发,使网页设计师专...
    YSail阅读 684评论 0 0
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,147评论 29 417
  • 配置 1. 下载ci框架和smarty, 创建项目目录 2. 在 /var/www/ci_smarty/appli...
    fizzday阅读 2,333评论 0 2
  • 岁月,不停 遗落的的记忆,任由你诉说 雅江江畔 不知怎样咆哮 才能流淌我心中的所有心思 每一次的心跳悸动 映着你纯...
    西域小刀阅读 503评论 2 4