美文网首页
Smarty模板引擎

Smarty模板引擎

作者: PHPer_ | 来源:发表于2017-08-11 11:19 被阅读154次

模板引擎的作用是什么

对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}

相关文章

  • 2018-05-11Smarty模板引擎

    Smarty(模板引擎) 一、什么是模板引擎? Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外...

  • Smarty模板

    PHP模板引擎 该文档使用的是Smarty 3.1.33 Released版本 什么是PHP模板引擎? php模板...

  • Smarty 模板函数

    最近工作中用到 Smarty 模板引擎,整理了一些用到的模板函数。 假设 smarty 的定界符为 {}。 模板中...

  • smarty模板引擎

    一、模板引擎的工作原理 1、实现HTML代码和PHP代码简单分离,完全去除视图文件中的PHP标记 2、常用PHP模...

  • Smarty模板引擎

    模板引擎的作用是什么 对PHP语言熟悉的程序员就会知道有个Smarty的名词,那么这个具体是什么呢?smarty是...

  • smarty模板引擎

    1)、模板引擎概念 ❖ 模板引擎的功能是实现逻辑与显示相分离,使程序设计者可以专注于程序功能的开发,使网页设计师专...

  • Smarty模板引擎

    Smarty

  • Smarty--(2)创建配置文件

    完成Smarty配置工作是应用Smarty模板引擎的关键。config.php 下面,我们来一一解读1.defin...

  • 微擎模板引擎

    $this->template('xxx')说明 类似smarty模板引擎 1、如果写在模块的前台方法functi...

  • 第一章 Jade模板引擎课程简介

    1-1模板引擎: 将动静部分糅合的一种机制或者技术 1-2流行的模板 PHP:Smarty SimpleTempl...

网友评论

      本文标题:Smarty模板引擎

      本文链接:https://www.haomeiwen.com/subject/jmslrxtx.html