smarty模板技术

smarty简介:

smarty是php领域流行的一种模板技术,免费,其核心就是一个类(smarty类)。

我们的主要目标就是学习怎么使用这个类。

smarty的特点:

速度快(因为第二次执行的时候使用第一次执行时生成的编译文件)

缓存技术(正是因为缓存技术,使得smarty模板技术不太适合那些对于实时性更新要求比较高的,比如股票信息)

插件技术(正是因为插件技术,使得smarty可以被扩展)

编译型(访问一个页面一次之后会生成一个编译文件,第二次再来访问这个页面的时候,就会访问这个编译文件,从而提高访问速度);

$smarty->assign(‘变量名‘,数据)

smarty内部变量:

$smarty.now:获取当前时间,是一个时间戳(整数)

$smarty.get:获取到$_GET数据,$smarty.get.xx相当于$_GET[‘xx‘]

$smarty.post:获取到$_POST数据,  $smarty.post.xx相当于 $_POST[‘xx’]

$smarty.cookies:获取到$_COOKIE数据,  $smarty.cookies.xx相当于 $_COOKIE[‘xx’]

$smarty.session:获取到$_SESSION数据,  $smarty.session.xx相当于 $_SESSION[‘xx’]

$smarty.const:  获取到php程序中的常量数据

$smarty.config:获取到配置数据

内建函数:

就是写在模板文件中,用于实现一定功能的smarty语句或语法。

模板文件中,有时候不是简单的“输出数据”,而可能还会需要一些其他的功能。内建函数就起这个作用。

跟前面的变量对比来说:

变量(数据)只是单纯的输出,

但:

内建函数并不是输出数据,而是在模板中实现某种功能,

,比如:

载入配置文件,实现if判断,实现循环逻辑。。。。

常用内置函数有:

{config_load}:载入配置文件。

{include}:载入(引入)其他模板文件到当前模板文件。

{if}:用于实现if语句。

{for}:用于实现循环。

{foreach}:用于对数组进行遍历。

{while}:用于实现循环。

{literal}:用于标识一段代码排除在smarty的处理逻辑中——即不被smarty处理!通常就是css代码和js代码中的大括号,跟smarty的大括号有冲突,用此来解决。

literal函数的使用:

对于解决smarty与跟css(和js)语法的可能冲突,还有一个方法:

修改smarty的“边界符”;

$smarty->left_delimiter = “<{“;

$smarty->right_delimiter = “}>“;

则所有的模板中的smarty边界符都要按上述来做,比如:

<{$v1}>

<{if  $age > 18 }>

。。。。。

<{/if}>

自定义函数:

也是函数,只是不作为smarty里模板文件中的核心函数,它常常用于构建并输出一些html代码内容。

smarty常量:

template_dir:表示“模板文件所在目录”;

template_dir:表示“模板文件所在目录;

left_delimiter:表示smarty语法的左边界。

left_delimiter:表示smarty语法的左边界。

smarty常用方法:

assign():变量赋值

display():加载模板

setTemplateDir():设置模板目录

setCompileDir():设置编译目录

getTemplateDir():获取模板目录

getCompileDir():获取编译目录

~~~~~~~~~~~~~~~

原文地址:https://www.cnblogs.com/bjphp/p/8564188.html

时间: 2024-10-13 10:07:30

smarty模板技术的相关文章

html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)

目标 需要的是在选择第一个select下拉列表后,将选择的内容传送到PHP页面.在PHP页面中通过查询数库,得到第二个select需要显示的option的值,并在select中显示. 方案 1  利用ajax上传数据到PHP,由于利用了smarty模板技术,可以直接给模板中的变量赋值,这样就可以不用通过ajax接收返回值再经过处理输出了. 由于这个PHP页面没有包含在其他PHP页面里,是独立的.这样就造成无法赋值. 2  通过ajax接收返回值,这里的返回值就是以上数据库查询的结果. 通过jso

smarty详细使用教程(韩顺平smarty模板技术笔记)

MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模板文件templates_c 存放编译后的文件再创建初始化文件smarty.ini.php 注意事项:1.替换变量的标识分隔符一般使用<{}>改动分隔符的两个方法:1.改源码:Smarty.class.php $left_delimiter 不推荐2.动态修改:$Smarty->left_d

Smarty模板技术/引擎——变量操作(2)

1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’hello world’);在b.tpl中代码,{$str}直接打印出hello world. index.php <?php require_once "./libs/Smarty.class.php"; $smarty = new Smarty(); $smarty->as

Smarty模板技术之foreach遍历数组实例全面讲解

一.item属性用法 <?php $arr = array(600, 851, 7412); $smarty->assign('testarrg', $arr); ?> 用Smarty中的foreach方法来遍历并输出这个数组 <dl> <dt>foreach中item属性用法</dt> {foreach from=$testarrg item=test} <dd>{$test}</dd> {/foreach} </dl&

Smarty模板技术/引擎——变量操作

1,基本变量 $smarty->assign('data1',3); $smarty->assign('data2',3.45); $smarty->assign('data3','fffff'); $smarty->assign('data41',true); $smarty->assign('data42',false); 整数:<{ $data1 }><br/> 小数:<{ $data2 }><br/> 字符串:<{

合并_08smarty模板技术(3days)

2013-12-9 昨天内容回顾 两个常用方法assign()和display() assign方法给模板传递变量信息(实际是把信息给到smarty对象属性里边) append方法给模板传递变量信息,和assign的区别是以数组形式传递给模板,可以使用名字一样的变量信息 display()方法展示模板, 后缀.html. 一般实际在使用的时候,模板的后缀习惯是 .tpl,这样别人就不会直接过来访问. 模板中3种变量使用 assign给模板传递的变量使用 系统保留变量 get post sessi

smarty模板引擎(一)基础知识

一.基本概念 1.什么是mvc? mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty? smarty是一个php的模板引擎.更明确的来说,它可以帮助开发者更好的分离程序逻辑和页面显示. 3.smarty运行原理 模板文件,就是一个显示数据的模板,其中需要显示的数据用占位符代替. smarty运行时,会读取模板文件,将模板文件中的占位符替换成真正的数据,并输出一个处理后的php文件,交由服务器运行. 二.自己写一个smarty模板 为了更好的理解

php模板原理PHP模板引擎smarty模板原理浅谈

mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示. smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码.这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了. sma

Smarty模板引擎技术(一)

一.Smarty模板引擎简介 什么是smarty? Smarty是采用php写的一个模版引擎,设计的目的是要将php代码与html代码分离,使php程序员只专注于php代码的编写,网页美工只专注于网页的美化 没有模版引擎时出现的问题? html中php代码比重越来越大 页面的数量越来越多 程序设计与美工设计分工不明确 传统的php文件: 1. php代码跟html混编在一起,不利于程序员和美工的分工,程序员和美工不能同时修改一个文件 2.数据的传递同一页面传递,php数据在页面中的显示需要使用p