Smarty3【一】引入模板类

Smarty是一个PHP的模板引擎。更明确来说,它可以帮助开发者更好地 分离程序逻辑和页面显示。最好的例子,是当程序员和模板设计师是不同的两个角色的情况,而且 大部分时候都不是同一个人的情况。业务逻辑和显示逻辑分离,是Smarty的一个设计理念。

官网:          https://www.smarty.net/

中文手册:https://www.smarty.net/docs/zh_CN/

下载:       https://www.smarty.net/download

【1】下载引入Smarty3

进入下载页面,选择版本Smarty3使用。

【2】引入smarty3  设置变量 传入变量  渲染模板

<?php
//引入主类
require('../Smarty/libs/Smarty.class.php');
//实例化smarty对象
$smarty = new Smarty();
// 配置
$smarty->template_dir = './template/';//模板文件目录
$smarty->compile_dir = './compile/';  //生成编译文件目录

//变量 赋值   字符串 数字  数组
//传入变量
$smarty->assign('title','引入smarty');
$smarty->assign('content','学习');

//传入数字
$smarty->assign('num','999');

//传入数组  关联数组
$user1 = array('name'=>'刘备','age'=>'20','weapon'=>'双?');
$smarty->assign('user1',$user1);

//传入数组  索引数组
$user2 = array(0=>'关羽',1=>'18',2=>'青龙偃月刀');
$smarty->assign('user2',$user2);

//渲染
$smarty->display('1.html');

html模板页面

<!DOCTYPE html>
<html lang="en">
    <head>
    <title>{$title}</title>
        <meta charset="utf-8">
    </head>
    <body>
        {$content} 是 {$num}

<pre>
---------------------------------关联数组 利用$user['name']访问
姓名:{$user1['name']}
        年龄:{$user1['age']}
        武器:{$user1['weapon']}
---------------------------------关联数组 利用$user.name  访问
姓名:{$user1.name}
        年龄:{$user1.age}
        武器:{$user1.weapon}
---------------------------------索引数组 利用$user[0]访问
姓名:{$user2[0]}
        年龄:{$user2[1]}
        武器:{$user2[2]}
---------------------------------索引数组 利用$user.0访问
姓名:{$user2.0}
        年龄:{$user2.1}
        武器:{$user2.2}
</pre>
    </body>
</html>

【3】定界符的设定

$smarty->left_delimiter  = '<{';
$smarty->right_delimiter = '}>';

【4】原样输出{literal}{/literal}标签

这样的话,包含在里面的{$var}就会原样输出,而不会进行解析成<?php ehco $var; ?>

{literal}
    利用{$var}输出变量 
{/literal}

小结一下

【1】Smarty3的赋值类型

Smarty3可以赋 字符串,数值,数组,甚至对象。其中关联数组或者索引数组的模板输出,可以是以$arr.name的形式或者是$arr[''name].

【2】定界符

模板解析的时候使用中括号进行变量输出{}里面写变量,即{$var}相当于<?php echo $var; ?> 

这个定界符{ }是默认的,当然可以利用$smarty->left_delimiter="<{"  和$smarty->right_delimiter="}>"进行修改。

【3】 原样输出

在模板页面里可能会有一些css样式的大括号,或者一些需要显示在页面中的,不想被解析,那么就在两边加上{literal}{/literal}标签

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值