菜鸟学PHP之Smarty入门
简介
Smarty是一个模板引擎,它专门用于分离应用程序逻辑和表示层。它将模板和PHP代码分开处理,在模板中只包含基础HTML、CSS和JavaScript,而不包含PHP的逻辑结构和语句。 Smarty支持标记、变量、修饰器和PHP函数调用等。Smarty的使用可以提高应用程序的可维护性,降低维护成本,极大地提高了开发效率。
安装Smarty模板引擎
要使用Smarty,首先需要安装Smarty模板引擎。可以通过以下步骤安装:
步骤1:下载Smarty
请到Smarty的官方网站 http://www.smarty.net/ 下载最新版Smarty。通常情况下,下载后得到的是一个压缩包。
步骤2:解压Smarty
将下载的Smarty压缩包解压到某个目录。例如将其解压到C:\php\Smarty
目录下。
步骤3:在PHP中引入Smarty
在PHP代码中需要使用Smarty时,需要引入Smarty类库。可以通过以下代码在PHP代码中引入Smarty:
<?php
require_once '/path/to/Smarty/libs/Smarty.class.php'; //定义Smarty的路径
$smarty = new Smarty(); //创建Smarty对象
?>
在上面的代码中,需要将path/to/Smarty
目录路径替换为实际的Smarty目录路径。
基本使用
步骤1:创建模板文件
在使用Smarty进行模板引擎开发之前,必须先创建一个Smarty模板文件。首先需要在Web服务器的根目录下或者某个虚拟站点下创建一个Smarty模板文件(例如index.tpl
)。在这个Smarty模板文件中可以定义HTML、CSS和JavaScript元素,并通过Smarty的标记来定义Smarty变量。
一个简单的index.tpl
模板文件示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$title}</title>
</head>
<body>
<h1>{$title}</h1>
<p>{$content}</p>
</body>
</html>
步骤2:定义PHP代码
在PHP代码文件中,需要定义Smarty变量。可以使用以下方式定义Smarty变量:
<?php
require_once '/path/to/Smarty/libs/Smarty.class.php';
$smarty = new Smarty();
$smarty->assign('title', '这是标题');
$smarty->assign('content', '这是内容');
$smarty->display('index.tpl'); //在显示Smarty文件时应该使用display方法
?>
在上面的PHP代码中,首先创建Smarty对象,然后通过assign
方法定义Smarty变量。例如在这个代码中值分别是‘这是标题’
和‘这是内容’
,最后使用display
方法在浏览器中显示index.tpl
模板文件。
进阶使用
更进一步地使用Smarty,Smarty通过修饰符处理输出的内容。Smarty有众多内置的修饰符,包括字符串、数值、日期和布尔修饰符等。
修饰符示例1:字符串修饰符
{$str|lower} // 将字符串转换成小写
{$str|upper} // 将字符串转换成大写
{$str|escape} // 转义字符串,用于防止跨站脚本攻击(XSS)
{$str|truncate:10} // 将字符串截断到固定长度
修饰符示例2:数值修饰符
{$num|number_format} // 将数值以千位分隔符与小数点进行格式化
{$num|format_number:2} // 按指定的小数位数格式化数值
{$num|format_currency:'USD'} // 将数值格式化成指定的货币格式
一个完整示例:
<?php
require_once '/path/to/Smarty/libs/Smarty.class.php';
$smarty = new Smarty();
$title = '这是标题';
$content = '这是内容';
$time = '1632508380';
$smarty->assign('title', $title);
$smarty->assign('content', $content);
$smarty->assign('time', $time);
$smarty->assign('fullname', 'John Smith');
$smarty->assign('salary', 10000.1);
$smarty->display('index.tpl');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$title|upper}</title>
</head>
<body>
<h1>{$title|upper}</h1> //使用字符串修饰符将标题转换成大写
<p>{$content|truncate:5|escape}</p> //将内容截断到5个字符并转义,以防止XSS攻击
<p>{if $time|date_format:"%Y%m%d%H%M%S" gt "20210000000000"}{$time|date_format:"%Y/%m/%d %H:%M:%S"}{/if}</p>//仅在日期大于2021年执行
<p>{$fullname|default:"没有名字"}</p> //默认情况下输出$fullname的值,如果不存在,输出"没有名字"
<p>{$salary|number_format}</p> //格式化薪水并用逗号分隔
<p>{$salary|format_currency:'USD'}</p> //将薪水转换成美元并格式化
</body>
</html>
通过上述示例,可以学习到使用Smarty的基本语法,以及如何使用修饰符处理输出的内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:菜鸟学PHP之Smarty入门 - Python技术站