smarty的使用案例

原创 2019-01-12 17:01:04 232
摘要:<?php //开启session session_start(); //加载smarty require __DIR__.'/config/config.php'; //单值变量:标量 $name = 'php'; //模板赋值 $smarty->assign('name',$name); //数组 //1
<?php
//开启session
session_start();
//加载smarty
require __DIR__.'/config/config.php';
//单值变量:标量
$name = 'php';
//模板赋值
$smarty->assign('name',$name);
//数组
//1.索引数组
$courses = ['html5','css3','jquery','javascript','php'];
$smarty->assign('courses',$courses);
//2.关联数组
$userInfo = ['name'=>'Mary','sex'=>'女','age'=>24,'hobby'=>'阅读'];
$smarty->assign('userInfo',$userInfo);
//3.多维数组
$books[] = ['name'=>'PHP开发从入门到放弃','price'=>65,'publish'=>'2018-8-8'];
$books[] = ['name'=>'MYSQL性能分析','price'=>63,'publish'=>'2018-8-5'];
$books[] = ['name'=>'javascript高级程序设计','price'=>129,'publish'=>'2018-8-9'];
$smarty->assign('books',$books);
//对象
class Study
{
    public $site = 'PHP中文网';
    public function welcome()
    {
        return '欢迎来到:'.$this->site;
    }
}
$study = new Study();
$smarty->assign('study',$study);
//自定义函数
function add($a,$b)
{
    return $a+$b;
}
//常量,不需要模板赋值
const SITE_NAME = 'PHP中文网';
//系统常量,不需要模板赋值
$_POST['user_name']='admin';
$_GET['page']=5;
$_SESSION['pass']=sha1('123456');
//渲染模板
$smarty->display('work.html');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用smarty模板</title>
</head>
<body>
{* 显示单值变量 *}
<h3 style="color:red;">{$name}是世界上最好的语言</h3>
{* 显示索引数组 *}
<p>前段技术有:{$courses[0]},{$courses[1]},{$courses[2]},{$courses[3]}</p>
<p>前段技术有:{$courses['0']},{$courses['1']},{$courses['2']},{$courses['3']}</p>
<p>前段技术有:{$courses.0},{$courses.1},{$courses.2},{$courses.3}</p>
{* 显示关联数组 *}
<span style="background: lightgreen;">个人资料:姓名:{$userInfo['name']}, 年龄:{$userInfo['age']},
    性别:{$userInfo['sex']}, 爱好:{$userInfo['hobby']}</span><br>
<span style="background: lightgreen;">个人资料:姓名:{$userInfo.name}, 年龄:{$userInfo.age},
    性别:{$userInfo.sex}, 爱好:{$userInfo.hobby}</span><br>
{* 显示多维数组 *}
<ul>
    <li>书名:《{$books.0.name}》,价格:{$books.0.price}, 出版时间:{$books.0.publish}</li>
    <li>书名:《{$books.1.name}》,价格:{$books.1.price}, 出版时间:{$books.1.publish}</li>
    <li>书名:《{$books.2.name}》,价格:{$books.2.price}, 出版时间:{$books.2.publish}</li>
</ul>
<ul>
 {foreach $books as $values}
    <li>书名:《{$values.name}》,价格:{$values.price}, 出版时间:{$values.publish}</li>
 {/foreach}
</ul>
{* 显示对象中的成员 *}
<p>站点:{$study->site}</p>
<h4>{$study->welcome()}</h4>
{* 访问自定义函数,直接在模板中输出 *}
<p>求和:{add(40,4)}</p>
<p>求和:{add($books.1.price,4)}</p>
{* 显示常量*}
<p>站点常量:{$smarty.const.SITE_NAME}</p>
{* 显示系统变量 *}
<p>POST提交的用户名是:{$smarty.post.user_name}</p>
<p>GET提交的数据是:{$smarty.get.page}</p>
<p>SESSION会话中的密码是:{$smarty.session.pass}</p>
{* 读取配置文件 *}
{config_load file = "app.conf"}
<h3>应用名称是:{$smarty.config.app_name}</h3>
<h3>应用名称是:{$smarty.config.page_title}</h3>
</body>
</html>

总结:学会了使用smarty模板,先使用composer下载并导入,然后进行基本的配置,有四个必选的配置目录,模板目录,编译目录,缓存目录,配置目录,接着,通过模板赋值,模板渲染,将php代码与html代码分离,与tp5中的使用有点类似,使用比较简单。当为常量,系统变量,自定义函数时,不需要赋值,直接在模板中输出。学到新知识,比较充实。

运行结果图:

smarty1.png

批改老师:查无此人批改时间:2019-01-12 18:01:58
老师总结:说得对,php就是世界上最好的语言。看你一次学习了不少,一定要多实践。写的越好,人就会越自信,学的越快,加油

发布手记

热门词条