smarty教程系列2--section1

简介:
第二课 smarty基本语法(1)
好了有了上一节课的安装,这节课我们看看smarty的基本语法
我们知道smarty是为了把php和美工制作的模板部分尽量做到分离,这样程序做程序时可以不必等到美工的页面出来之后在做前台这部分程序,
smarty起到了一个中间桥梁的作用,这样需要我们的程序员和美工都要了解smarty的语法,好了我们先看看模板设计者部分(也就是美工这一部分),
我们简单看一个模板test.tpl:

InBlock.gif<html>
InBlock.gif<head><title><{$title}></title></head>
InBlock.gif<body>
InBlock.gif我的名字是<{$name}>,我来自<{$city}>.
InBlock.gif</body>
InBlock.gif</html>


test.php关键部分部分:

InBlock.gif$title= "学习smarty基本语法部分";
InBlock.gif$name= "xcf007";
InBlock.gif$city= "威海";
InBlock.gif
$tpl->assign( "title",$title);
InBlock.gif$tpl->assign( "name",$name);
InBlock.gif$tpl->assign( "city",$city);


这里就是简单把数据赋给模板变量.


smarty是编译模板,也就是说它首先根据模板去生成一个php文件,我们运行后会发现在template_c目录生成一个类似
%%45^45E^45E480CD%%test.tpl.php这样名字的文件,这就是smarty根据模板编译生成的一个文件。

其实它就是扫描一下tpl文件,定界符外的直接输出到那个php临时文件里,而定界符内的部分,它会处理
比如 我的名字是<{$name}>,我来自<{$city}>.他就会把<{$name}>替换成<?php echo $name;?>类似这个样子,当然实际中他是$this->_tpl_vars['Name'];我们为了简单起见。


很多php程序员不用smarty时,有的就用include方式。
比如

test.php:

InBlock.gif$title= "学习smarty基本语法部分";
InBlock.gif$name= "xcf007";
InBlock.gif$city= "威海";
InBlock.gif
include 'index.tpl';

而index.tpl变成了:

InBlock.gif<html>
InBlock.gif<head><title><?php echo $title;?></title></head>
InBlock.gif<body>
InBlock.gif我的名字是<?php echo $name;?>,我来自<?php echo $city;?>.
InBlock.gif</body>
InBlock.gif</html>

好了,这个include方式,大家做小东西不妨试试。

了解smarty的机制,看看语法:
1.smarty注释
看看模板任意如何做注释,因为可能有时候做模板时需要对模板变量做一下注释,
注意不是html注释,那个会出现在将来静态页面源代码中,我们这个是对模板注解的,只想出现在模板文件里。
好了是 定界符带个星号,如<{* 这里是模板注释 *}>

这个注释模板编译时会忽略,不会出现在那个临时的php文件里面。

待续...






 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/156835 ,如需转载请自行联系原作者

相关文章
|
3月前
|
XML 存储 JSON
SAP UI5 XML Templating Preprocessor 的 template:with 指令使用介绍
SAP UI5 XML Templating Preprocessor 的 template:with 指令使用介绍
20 0
|
4月前
使用 gopkg.in/ini.v1 包处理 INI 文件时,你可以使用 Section.HasKey 方法来检查某个 Section 中是否存在指定的 key
使用 gopkg.in/ini.v1 包处理 INI 文件时,你可以使用 Section.HasKey 方法来检查某个 Section 中是否存在指定的 key
|
9月前
|
PHP
PHP - Laravel 视图模板(blade.php) 模板继承(@extends、@yield、@section)
PHP - Laravel 视图模板(blade.php) 模板继承(@extends、@yield、@section)
146 0
|
10月前
|
PHP
php模版引擎smarty出现Undefined index的解决方案
php模版引擎smarty出现Undefined index的解决方案
69 0
|
10月前
|
PHP 索引
php模版引擎smarty使用section方法实现for循环代用索引数字i的解决方案
php模版引擎smarty使用section方法实现for循环代用索引数字i的解决方案
59 0
sublime 打开报错 Error loading syntax file “Packages/HTML/HTML.sublime-syntax“: Apparent recursion withi
卸载步骤 打开sublime工具,按shift+command+p,打开输入框 输入remove package 输入 JavaScriptNext-ES6 Syntax,找到此插件,选中,enter卸载 重启sublime,弹出框消失
435 0
./source/plugin/dxcaptcha/template/popup1.htm报错问题解决,discuz X3.4论坛报错
./source/plugin/dxcaptcha/template/popup1.htm报错问题解决,discuz X3.4论坛报错
./source/plugin/dxcaptcha/template/popup1.htm报错问题解决,discuz X3.4论坛报错
|
Web App开发 PHP 索引
smarty、smarty格式化、smarty整数、smarty float、smarty各种转换方式、smarty日期转换等等
smarty code: {config_load file='config.conf'} Smarty学习 {capture name=banner}{*注释掉中间显示内容*} {include file="banner.
1238 0
|
JavaScript PHP 前端开发
PHPStorm File and Code Template
有时候我们想新建某类型文件的时候,默认出现一些基础代码,而不是空白的。 比如当新建一个 html 文件 基础代码是这样的: 同理,当新建php文件,我希望是这样:
1367 0
|
PHP 前端开发 网络架构