一、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. Smarty模板

    Smarty模板 是做什么用的?? 是将前端的显示和后台的逻辑进行分离,就相当于把前台显示的页面和后台要实现的某些功能的逻辑给分离出来了,分离在两个文件里,也就是说,前端只负责显示,后端只负责逻辑操作 ...

  3. a++ ++a 文件上传函数错误 smarty模板特点

    b = a++; 会先把a初始的值赋值给b,然后a自增1. c = ++a; 先把a自增1,再把增1以后的结果赋值给c.  只要记住在使用的时候  $a++  是先返回$a,再将$a本身的值改变.   ...

  4. 深入浅出之Smarty模板引擎工作机制(二)

    源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解. Smarty模板引擎的原理,其实是这么一个过程: ...

  5. smarty模板设计

      一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影 ...

  6. smarty模板基础2

    Smarty自带了一些内置函数,这些内置函数是Smarty模板引擎的组成部分.他们被编译成相应的内嵌PHP代码,以获得最大性能. 您创建的自定义函数不能与内置函数同名,也不必修改这些内置函数. 其中一 ...

  7. smarty模板基础3 *缓存数据*

    缓存数据,这个并不是暂存的缓存,而是写入了内存的缓存 通过一个例子来书写:缓存数据 一.书写php和html页面的基本功能 既然是用smarty模板,那么前端和后端要分开写了 (1)php页面 < ...

  8. smarty模板基础----缓存数据

    缓存数据,这个并不是暂存的缓存,而是写入了内存的缓存 通过一个例子来书写:缓存数据 一.书写php和html页面的基本功能 既然是用smarty模板,那么前端和后端要分开写了 (1)php页面 1 2 ...

  9. smarty模板开发基础总结

    前提:1. 部署smarty模板目录:2. 编写Smarty类的子类,定制好template_dir.compile_dir.config_dir.cache_dir.left_delimiter.r ...

随机推荐

  1. Android取得图库图片的具体地址

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResu ...

  2. iOS导航控制器常用函数与navigationBar常用属性

    导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...

  3. 未能加载文件或程序集“System.Data.SQLite”或它的一个依赖。试图加载格式不正确的程序

    Go to the IIS7 Application Pool -> advanced settings and set the 32-bit application to true.

  4. 【算法杂谈】LJX的迪杰斯特拉算法报告

    迪杰斯特拉(di jie qi)算法 这里有一张图: 假设要求从1号节点到5号节点的最短路.那么根据迪杰斯特拉算法的思想,我们先看: 节点1,从节点1出发的一共有3条路,分别是1-6.1-3.1-2. ...

  5. tableview 位置发生偏移

    状况描述:1.首次进入该界面时正常 2.push了新的界面后,再返回该界面 tableview和导航栏直接出现了间隔区域 tableview为代码创建 _tableView =  [[UITableV ...

  6. mssql 获取自增列起始及增量

    --首先创建一个表 CREATE TABLE [dbo].[abcd]( ,) NOT NULL, ) NULL, ) NULL ) ON [PRIMARY] --获取起始值 SELECT IDENT ...

  7. 解决Winform应用程序中窗体背景闪烁的问题

    本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问 ...

  8. javascript平时例子⑧(大屏轮播)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  9. innodb Lock wait timeout exceeded;

    当出现:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,要解决是一件麻烦的事情:特别是当一个SQL ...

  10. 安卓初級教程(1):@Database(1)

    package com.example.android.db01; import android.app.Activity; import android.content.ContentValues; ...