一、assign和display方法的使用以及几个变量调节器

header("content-type:text/html;charset=utf-8");
//加载Smarty引擎文件
include "./smarty/Smarty.class.php";

//连接数据库,提取相关数据
$title = "Smarty 模板引擎";
$content = "Smarty 模板引擎Smarty 模板引擎Smarty 模板引擎";

//实例化Smarty
$smarty = new Smarty;

//通过assign方法给模板文件分配变量
$smarty->assign('title',$title);
$smarty->assign('content',$content);
//给模板分配一个数组变量使用
$person = array('自来也',33);
$smarty->assign('person',$person);

//给模板分配一个对象变量使用
class Person{
public $name;
public $age;
}
$per = new Person;
$per->name = '辉夜';
$per->age =555;

$smarty->assign('per',$per);

/** 变量调节器
*所谓的变量调节器其实就是变量修饰器,就是对PHP分配过来的变量加以“修饰”,也就是进行相关的格式化操作!然后再进行输出!
*不同的调节器有不同的名字,可以完成不同的功能,并且不同的调节器都有自己不同的参数!
{$变量名|调节器名:参数1:参数2:参数3……}
*
*如date_format
*作用:对时间戳进行格式化!参数有很多,但是主要的参数还是代表年月日时分秒的参数!
*{$变量名(时间戳)|date_format:‘%Y-%m-%d %H:%M:%S’}
*/
$time = time();
$smarty->assign('time',$time);

//去掉js和html等相关的标签!strip_tags
$str = '<b>六道</b>';
$smarty->assign('str',$str);

/**
*nl2br
*{$变量名| nl2br}
*作用:将字符串中的\n转换为<br />签,从而在显示的时候真正的实现换行的效果!
*/

$str1 = "广州市\n天河区";
$smarty->assign('str1',$str1);

/**truncate
*{$变量名|truncate:字符串长度:’…’}
*作用:只截取前多少多少的字符,后面用…代替!
*/
$str2 = "广州市天河区广州市天河区广州市天河区广州市天河区";
$smarty->assign('str2',$str2);

//通过display 方法替换模板中的标记并输出
$smarty->display('./templates/index1.tpl');

index1.tpl文件

<html>
<head>
<title>测试</title>
</head>
<body>
{*这里是注释内容,不会显示在浏览器端*}
{$title}<hr />
{$content}<hr />

{*模板标记是一个数组*}
姓名:{$person[0]}<br />
年龄:{$person[1]}<hr />

{*模板标记是一个对象*}
姓名:{$per->name}<br />
年龄:{$per->age}<br />

{*变量调节器 date_format 格式如下*}
变量调节器 date_format:{$time|date_format:'%Y-%m-%d %H:%M:%S'}<br />

{*变量调节器 strip_tags 格式如下*}
{$str|strip_tags}<br />

{*变量调节器 nl2br 格式如下*}
{$str1|nl2br}<br />

{*变量调节器 truncate 格式如下*}
{$str2|truncate:10:'...'}<br />
</body>
</html>

二、foreach遍历数组测试以及if elseif 例子

header("content-type:text/html;charset=utf-8");
//加载Smarty引擎文件
include "./smarty/Smarty.class.php";
//实例化Smarty
$smarty = new Smarty;

$arr = array('name'=>'辉夜',
'age'=>'333',
'home'=>'月亮',
'son'=>'六道'
);
$smarty->assign('arr',$arr);

$day = 4;
$smarty->assign('day',$day);
//通过display 方法替换模板中的标记并输出
$smarty->display('./templates/foreach.tpl');

foreach.tpl 文件

<html>
<head>
<title>foreach遍历数组测试</title>
</head>
<body>
{* 
{foreach from=数组名 item=元素的值的名 key=元素的键名 name=名称}
{foreachelse}
{/foreach}

主要功能:用于数组元素的遍历!
from:要遍历哪个数组元素(必选项)
item:系统每次将遍历的结果放入到变量item中(必选项)
key:键名
name:给本次foreach遍历起一个名字

*}
{foreach from=$arr item='value' key='key' name='name1'}
{$key}=>{$value}<br />
{/foreach}

{if $day==1}
星期1
{elseif $day==2}
星期2
{elseif $day==3}
星期3
{elseif $day==4}
星期4
{elseif $day==5}
星期5
{else}
周末
{/if}

</body>
</html>

smarty 模板几个例子(变量调节器)的更多相关文章

  1. smarty 模板几个例子

    一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...

  2. 12月15日smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  3. smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  4. smarty变量调节器与函数

    smarty自带了一些变量调节器与内置函数,都在libs/plugins目录下,变量调节器以modifier开头,函数以function开头,而且我们可以自定义变量调节器与函数,熟练运用之后会极大地提 ...

  5. Smarty 模板引擎简介

    前言 Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一.它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑 ...

  6. Smarty模板快速入门

    文件下载 1.下载地址:http://www.smarty.net/ 2.我下载的版本是3.1.27 ,将下载的文件smarty-3.1.27.zip解压出来,然后将libs文件夹的所有文件复制到你的 ...

  7. 第八十八天请假 PHP smarty模板 变量调节器,方法和块函数基本书写格式

    变量调节器 : 文件命名格式(modifier.名称.php)  前端调用方式<{变量|名称:参数:参数……}>可组合使用,用|隔开 <?php /* 命名格式 smarty_mod ...

  8. Smarty模板变量调节器

    Smarty模板变量调节器用法 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理 ...

  9. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

随机推荐

  1. CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)

    目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...

  2. dbm和发射功率得对照表

    原文链接:https://blog.csdn.net/nicholas_dlut/article/details/80950163dBm mW 下面是dbm和发射功率得对照表. 基本上市面上所有的无线 ...

  3. 捷克200套UR51出货新版本FTP问题(FTP主动模式无法正常传输数据问题)

    FTP alg功能 普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323.SIP等).FTP.SQLN ...

  4. 字符串搜索(strStr)--- java版

    这里来学习一下从一个源字符串中搜索指定的字符串,有些啰嗦,直接看最终的效果: 实际上JAVA SDK中相当于String.indexOf()方法,上面的用例改用JAVA SDK来实现看一下: 编译运行 ...

  5. python学习之模块(pip),列表生成式,模块操作mysql,excel

    python基础 生成式 列表生成式 格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: res1 = [] for i in range(1,5): res1.append(i) ...

  6. spring实例化二:SimpleInstantiationStrategy

            spring对类的实例化,定义了接口InstantiationStrategy,同时先做了个简单实现类SimpleInstantiationStrategy.采用实现部分,抽象部分的策 ...

  7. npm常规操作

    1.如果想在当前文件下创建package.json,只要在当前目录下执行npm init 2.如果执行过程中缺少依赖,有两种途径 ①安装全局 npm install -g express ②在当前工程 ...

  8. Property or method "openPageOffice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by

    Property or method "openPageOffice" is not defined on the instance but referenced during r ...

  9. python 函数中,os.linesep是干什么的

    os.linesep字符串给出当前平台使用的行终止符.例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'. def write_file(filename, subdom ...

  10. System.Web.HttpRequestValidationException: 从客户端(name="<a href=''>我是晓菜鸟</a>")中检测到有潜在危险的 Request.Form 值

    这是一个比较常见的问题了,如果Web表单中有输入类似于 Html 标签之类的文本,在通过 Request.QueryString 或者 Request.Form 传递这些值的时候,就会触发这样的异常, ...