转自:http://hi.baidu.com/qxxgvpdtzhbckpr/item/681049160d7be60db98a1aec
1.smarty的配置
首先,使用smarty第一件事是先配置好,一般有以下9行代码
require_once("smarty/libs/Smarty_class.php"); //把smarty的类定义文件包含进来
$smarty=new smarty();
$smarty->config_dir="smarty/libs/Config_File.class.php";
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->cache_dir="smarty_cache/"; //缓存文件夹
$smarty->template_dir="smarty_tpl"; //模板文件夹
$smarty->compile_dir="smarty_compile"; //编译文件夹
$smarty->left_delimiter="<{";// 标签符定义不是必要的,smarty默认是使用"<"和">",强烈建议更换。
//因为如果smarty的标签刚好在javascript语句里面时,冲突的可能性很大
$smarty->right_delimiter="}>";
以上的9行代码可以放在一个独立的文件,需要使用smarty的页面引用进来即可
2. smarty的使用
smarty替换标签的语法:
smarty->assign("标签名","值");
smarty->display("index.html"); //显示内容,index为模板文件名
假定模板文件里面有一个标签 <{ $user_name }> (注意:标签里面的变量必须带$)
那么在PHP文件可以:
$new_name="Joan";
smarty->assign("user_name",$new_name); (注意:在此时,user_name是不带$的)
smarty->display("index.html"); //显示内容,index为模板文件名
3. smarty的循环
循环的使用在php文件像处理普通标签一样处理
模板文件代码:
<table border=1 width=500>
<{section name=s loop=$stu}>
<tr>
<td>
<{$stu[s]}>
</td>
</tr>
<{/section}>
</table>
那么在PHP文件可以:
假如有一个数组,或一个记录集 $rs
$smarty->assign("stu",$rs);
$smarty->display("index.html"); //在PHP文件处理循环标签和普通标签没什么区别。
4. smarty的if 语法
模板文件
<{if $my_r>500 }>
<{$my_r}>
<{/if}>
php文件:
$aa=123;
$smarty->assign("my_r",$aa);
$smarty->display("in.html");
上例中,如果$aa>500,my_r的标签就能显示出来,否则不显示。
<{ if 条件 }> //此处的条件不要加括号,也不要像basic语言那样在后面加 then
<{/if}>
5. smarty循环配合if 使用实例
PHP文件
----------------------------------
$aa[0]=123;
$aa[1]=456;
$aa[2]=789;
$smarty->assign("my_r",$aa);
$smarty->display("in.html");
模板文件
------------------------------------------------------
<{ section name=s loop=$my_r }>
<{if $my_r[s]>200 }>
<{$my_r[s]}>
<{else}>
小于200
<{/if}>
<br>
<{/section}>
-----------------------------------------------
上例中,只显示大于200的数值
<{ section name=s loop=$my_r }>
<{if $my_r[s]=="456" }> //这是字符型的实例,用==
<{$my_r[s]}>
<{else}>
Not
<{/if}>
<br>
<{ /section }>
转载-smarty教程(基本语法)的更多相关文章
-
Flex 布局教程:语法和实例
语法篇 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便, ...
-
Swift入门教程:基本语法大全
原文:Swift入门教程:基本语法大全 简介: ...
-
Flex 布局教程:语法篇 【转】
Flex 布局教程:语法篇 作者: 阮一峰 日期: 2015年7月10日 原文:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 网 ...
-
Xamarin XAML语言教程基础语法篇大学霸
Xamarin XAML语言教程基础语法篇大学霸 前 言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...
-
【转载】Makedown数学公式语法
Typora数学模块 行间表达式快捷键($$) 点击"段落"->"公式块" 快捷键Ctrl+Shift+m "$$"+回车 行内表达式 ...
-
Esfog_UnityShader教程_UnityShader语法实例浅析
距离上次首篇前言已经有一段时间了,一直比较忙,今天是周末不可以再拖了,经过我一段时间的考虑,我决定这一系列的教程会避免过于深入细节,一来可以避免一些同学被误导,二来会避免文章过于冗长难读, 三来可以让 ...
-
[转载]ECMall模板解析语法与机制
ECMall模板解析语法与机制 2011-05-22 在ECMall模板中,用"{"开头,以"}"结尾就构成一个标签单元,"{"紧接着的单词 ...
-
(转)Esfog_UnityShader教程_UnityShader语法实例浅析
距离上次首篇前言已经有一段时间了,一直比较忙,今天是周末不可以再拖了,经过我一段时间的考虑,我决定这一系列的教程会避免过于深入细节,一来可以避免一些同学被误导,二来会避免文章过于冗长难读, 三来可以让 ...
-
XML教程、语法手册、数据读取方式大全
XML简单易懂教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 XML --数据格式的写法 二 Re ...
随机推荐
-
51node1264(判断线段相交)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1264 题意:中文题诶- 思路:对于直线a1a2, b1b2, ...
-
重新走过HTML,那些让我amazing 的标签
这一次我用了短暂的时间重新梳理了html的标签(包括html5 新增),发现我以前忽略了很多又轻巧又精美且实用的标签,总结如下: 格式标签: <address> 标签: 定义文档或文章的作 ...
-
应用python编写简单新浪微博应用(一)
转载至:http://blog.sina.com.cn/s/blog_6c39196501016o7n.html 首先,你要有一个新浪微博账号. 申请页面:http://weibo.com 其次,你要 ...
-
eclipse for jee版配置tomcat
在网上搜到的大多都是插件配置,其实默认的就可以配置tomcat的. 第一步:New -> Other -> Server ,然后选择Apache下的tomcat的版本. 注意:如果Next ...
-
WPF/Silverlight中的RichTextBox总结
WPF/Silverlight中的RichTextBox总结 在WPF或者是在Silverlight中有个非常强大的可以编辑的容器控件RichTextBox,有的时间会采取该控件来作为编辑控件.鉴 ...
-
转:Java compiler level does not match the version of the installed Java project facet
a.问题描述:eclipse加载新的项目后报一个错误,具体描述如下: Description Resource PathLocation Type Java compiler level does n ...
-
安装Oracle之后在DOS命令下不能使用sqlplus命令启动Oracle?
就像完成安装JDK后需要给系统配置环境变量JAVA_HOME和PATH,以便让系统认识在JDK里面的Javac命令.同样的,安装Oracle也需要这么一个过程.在正常情况下安装Oracle时系统安装程 ...
-
api测试工具
在线接口测试 http://www.36nu.com/apiTest 使用Fiddler测试WebApi接口 https://www.cnblogs.com/weixing/p/5254836.htm ...
-
JSTL标签 使用总结,foreach
最近开发一个网站,经常使用JSTL,这种语法与以前的不同,开始用着非常吃力,今天总结一下,供大家参考. 一.前言 JSTL全名为JavaServer Pages Standard Tag Librar ...
-
使用python读取yaml文件
在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...