Smarty模本引擎

封装一个自定义Smarty引擎

Smart模板注释  基本语法:{* 注释内容 *}

Smarty模板中的变量

简单变量

四种标量类型:整型、浮点型、布尔型和字符串型!

数组变量

可以给模板分配一个数组变量使用(一维和多维都可以)

对象变量

我们同样的可以将一个对象变量分配给模板文件,然后通过{$对象名->属性名}来访问这个对象的属性值!

变量调节器

基本语法

不同的调节器有不同的名字,可以完成不同的功能,并且不同的调节器都有自己不同的参数!

{$变量名|调节器名:参数1:参数2:参数3……}

cat

作用:主要是对两个字符串进行连接操作!

{$变量名1|cat:$变量名2|cat:$变量名3}

date_format

作用:对时间戳进行格式化!参数有很多,但是主要的参数还是代表年月日时分秒的参数!

{$变量名(时间戳)|date_format:‘%Y-%m-%d %H:%M:%S’}

default

作用:当一个变量为空或者没有定义的时候,默认的就以default后面的值进行填充!

{$变量名|default:值}

lower 和 upper

作用:将字符串里面的英文字母全部转换成小写或大写!

{$变量名|lower}

{$变量名|upper}

escape

作用:加上这个调节器后,浏览器就不会解析相关的html等标签!

 {$变量名|escape}

strip_tags

作用:去掉js和html等相关的标签!

{$变量名|strip_tags}

nl2br

作用:将字符串中的\n转换为<br />标签,从而在显示的时候真正的实现换行的效果

{$变量名| nl2br}

replace

作用:将变量中的字符串1全部替换成字符串2

{$变量名| replace:字符串1:字符串2}

tring_format

作用:讲字符串进行格式化!比如:%d代表整型,%s代表字符串!

{$变量名| string_format:%d}

truncate

作用:只截取前多少多少的字符,后面用…代替!

{$变量名|truncate:字符串长度:’…’}

注意:

1, 这的…是默认结束符,可以省略!

2, 这里的…占用字符串指定的长度!

3, 这里的结束符也可以使用用户指定的字符串

4, 如果实在不想显示任何的结束符,可以使用null代替

5, 也可以省略字符长度,默认为80个!

6, 截取中文的时候容易出现乱码:

Smarty系统变量

也叫作Smarty保留变量,就是Smarty系统自己已经定义好了,不需要用户手动分配给模板,可以直接在模板文件中使用的变量!

常用的有以下的几个:

{$smarty.get.变量名称}      相当于PHP中的$_GET

{$smarty.post.变量名称}    相当于PHP中的$_POST

{$smarty.cookies.变量名称}   相当于php中的$_COOKIE

{$smarty.session.变量名称}   相当于php中的$_SESSION

{$smarty.now}        相当于php中的time函数,返回一个当前时间的时间戳!

Smarty的内置语句

foreach

基本语法

{foreach from=数组名 item=元素的值的名 key=元素的键名 name=名称}

  {foreachelse}

{/foreach}

主要功能:用于数组元素的遍历!

from:要遍历哪个数组元素(必选项)

item:系统每次将遍历的结果放入到变量item中(必选项)

key:键名

name:给本次foreach遍历起一个名字

foreach中的内置变量

$smarty.foreach.name.index:  代表循环的索引值,默认是从0开始,其中的name就是在foreach选项中给foreach循环起的一个名字!也就是说,如果想使用foreach内置变量,就必须先给foreach循环起一个名字!

$smarty.foreach.name.iteration:循环迭代,代表当前是第几次循环,默认从1开始!

$smarty.foreach.name.total:  代表本次一共循环了多少次!

include

基本语法:  {include file=文件名 变量名=变量值}

主要功能:实现文件加载,常用于网页布局

if…elseif…else 

literal标签

基本语法

{literal}

……

{/literal}

主要的功能就是把被包裹的标记当做普通文件直接输出,也就是不会被smarty解析,主要用于包裹js和css标签!

时间: 2024-10-15 19:38:19

Smarty模本引擎的相关文章

前端学PHP之Smarty模板引擎

前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进.文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充.另外,Smarty也是一种自由软件,用户可以自由使用.修改,以及重新分发该软件.本文将详细介绍Smarty模板引擎 概述 Smarty是一个php模板引擎.更准确的说,它分离了逻辑程序和外

Smarty模板引擎技术(一)

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

Smarty模板引擎

Smarty模板引擎是一个完全由PHP程序写出来的模板引擎,优点如下: 速度:Smarty模板引擎相比其他的模板引擎速度更快 继承技术:在Smarty里面可以定义一个父模板,让子模板来继承父模板 缓存技术:可以让一个不怎么变化但是偶尔会变化的页面缓存起来.下一次客户端请求的时候直接将缓存文件给它

smarty模板引擎基础(二)

smarty模板引擎所需文件夹共可分为存放页面缓存的(cache).存放配置文件的(configs).存放模板扩充插件的(plugins).存放模板文件的(templates).存放编译后的模板文件的(templates_c).存放后端程序代码的(main); 一.configs文件夹:即保存一些与页面配置有关的相关代码,可以用[]来进行模块分类 ,以conf格式保存,可用记事本打开查询,在页面中的调用指令为 <{config_load file='文件名' section="模块名&qu

编写一个非常简单而且山寨的smarty模板引擎

PHP的正则表达式今天就结束了,遥想几年前初次接触的时候,感觉这玩意真心玩不转啊,而时至今日,感觉这也没有什么难以理解的,确实还是有很大进步的,尤其是对smarty模板引擎有了一个更为清晰的认识.正则表达式学到最后,总是会抛出这个编写一个山寨的smarty模板引擎的话题出来练练手,今天就在大师的指导下,编写了这么一个山寨smarty,作为这次复习正则的一个句点吧. <?php  class template{ //存储模板引擎源文件目录 private $templateDir; //编译后的文

(5) PHP 随笔---Smarty模板引擎 使用成熟的Smarty模板 05

◇Smarty模板引擎流程图,如下: ◇使用Smarty使得程序的速度有略微的降低了. ◇如何使用Smarty,步骤如下: ◇Smarty里的核心资源都放在libs文件夹中了.直接使用libs就好了. ◇把libs文件夹放到当前开发目录下,然后利用  include "./lib/Smarty.class.php";  将文件引用. ◇接下来实例化Smarty对象即可. ◇新建一个模板文件夹,取名为templates,用来存放模板文件夹. ◇新建一个编译文件夹,取名为templates

smarty模版引擎

模板技术 概述:一般情况下在HTML中实现某些动态数据显示功能时,会在HTML文件中插入一些PHP语句来实现动态数据显示的功能,但是PHP代码和HTML混编在一起不利于网站的改版和升级.因此模板机制便应运而生. 基本原理: 视图文件 在需要插入动态数据的部分使用一段特定的字符替代(此处使用了{$title}和{$content}) PHP文件 第二步:数据库中提取相应的动态数据,赋给变量.此处省略从数据库中提取数据的部分 第三步:加载视图文件的文本内容,并赋值给一个变量 第四步:替换读取的视图文

php smarty模版引擎中变量操作符及使用方法

php smarty模版引擎中变量操作符及使用方法

ThinkPHP整合Smarty模板引擎的使用以及查询方法汇总

其实说到整合smarty我们根本就没有作什么,要做的主要还是对于模板分配各种变量的使用,这才是重点,其次还有一些配置信息要自己去填写;先说一下配置,同样的,在主目录的common下面的config文件,把配置信息写入里面就可以了,其中主要有下面一下的配置信息. 'TMPL_ENGINE_TYPE'      =>  'Smarty', //'TMPL_L_DELIM'          =>  '<{',            // 模板引擎普通标签开始标记 //'TMPL_R_DELI