smarty 从配置文件读取变量
smarty变量分3种:
Variables [变量]
- Variables assigned from PHP [从PHP分配的变量]
- Variables loaded from config files [从配置文件读取的变量]
- {$smarty} reserved variable [{$smarty}保留变量]
从配置文件获取的变量
从配置文件获取的变量,可以通过 井号引用起来访问如#hash_marks#, 或者通过Smarty变量$smarty.config来访问。 后者在使用其他属性或者是访问别的变量值时比较有用,如$smarty.config.$foo。
Example 4.7. 配置变量
配置文件foo.conf例子:
pageTitle = "This is mine"
bodyBgColor = '#eeeeee'
tableBorderSize = 3
tableBgColor = "#bbbbbb"
rowBgColor = "#cccccc"
示范使用#hash#方式的模板:
{config_load file='foo.conf'}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<table border="{#tableBorderSize#}" bgcolor="{#tableBgColor#}">
<tr bgcolor="{#rowBgColor#}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
示范使用$smarty.config方式的模板:
{config_load file='foo.conf'}
<html>
<title>{$smarty.config.pageTitle}</title>
<body bgcolor="{$smarty.config.bodyBgColor}">
<table border="{$smarty.config.tableBorderSize}" bgcolor="{$smarty.config.tableBgColor}">
<tr bgcolor="{$smarty.config.rowBgColor}">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
上面的例子都可以输出:
<html>
<title>This is mine</title>
<body bgcolor="#eeeeee">
<table border="3" bgcolor="#bbbbbb">
<tr bgcolor="#cccccc">
<td>First</td>
<td>Last</td>
<td>Address</td>
</tr>
</table>
</body>
</html>
配置变量必须先载入配置文件才能使用。 这个过程会本文档的{config_load}说明里面解释。
参见 变量 和 $smarty保留变量
参考:http://www.smarty.net/docs/zh_CN/language.config.variables.tpl
再说一下配置文件:
Chapter 9. 配置文件
配置文件可以让设计者将全局的模板变量以文件形式管理起来。 其中一个例子是管理模板的颜色值: 通常如果你需要从程序中更改颜色主题,那么你需要找到每个模板文件, 并且修改它们的颜色值。 通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可。
Example 9.1. 配置文件语法示例
# global variables
pageTitle = "Main Menu"
bodyBgColor = #
tableBgColor = #
rowBgColor = #00ff00 [Customer]
pageTitle = "Customer Info" [Login]
pageTitle = "Login"
focus = "username"
Intro = """This is a value that spans more
than one line. you must enclose
it in triple quotes.""" # hidden section
[.Database]
host=my.example.com
db=ADDRESSBOOK
user=php-user
pass=foobar
配置文件中的配置变量可以被引用起来,但不是必须的。 你可以使用单引号或者双引号。 如果有的值会跨度不止一行的,那么你需要用三引号(""")把它们括起来。 你可以将任何形式的注释放到配置文件中,但这不是有效的配置文件语法。 我们建议使用# (井号) 来作为注释行的开头。
上面配置文件的例子有两段。 段落的名字用[方括号]括起来。 段落名称可以是任意字符,但不包括[ 或 ]符号。 最顶部的四个值是全局变量,也就是不在段落内的变量。 这些全局变量将总是被载入。 当一个特定的段落被载入,那么段落的变量以及全局变量都会被载入。 如全局变量和段落变量都有同样的变量,那么将使用段落的变量。 如有相同的两个变量在同一个段落,最后一个将会被使用,除非 $config_overwrite设置被关闭。
配置文件可以使用内置的函数 {config_load}来载入,或者通过configLoad()函数进行载入。
你可以通过在变量名或段落名前面加上点号(.),来隐藏变量或者整个段落,如[.hidden]。 这个技巧在你的程序使用配置文件保存一些敏感信息,但这些信息又不希望模板引擎使用时,非常有用。 如果是第三方来对模板进行修改,你也可以保证他们不会在载入配置文件时,读取到这些敏感信息
配置文件(或资源)将使用相同的模板资源来进行载入。 这意味着配置文件还可以从数据库中载入,如$smarty->configLoad("db:my.conf")。
参见 {config_load}, $config_overwrite, $default_config_handler_func,getConfigVars(), clearConfig() 和 configLoad()
smarty 从配置文件读取变量的更多相关文章
- Smarty从配置文件读取的变量
从配置文件读取的变量 配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到) 第二种语法在变量作为属性值并被引号括住的 ...
- VS2012中,C# 配置文件读取 + C#多个工程共享共有变量 + 整理using语句
(一) C# 配置文件读取 C#工程可以自动生成配置文件,以便整个工程可以使用设置的配置进行后续的处理工作. 1. 首先,右键工程文件-->Properties -->settings-- ...
- 三,Smarty模板技术/引擎——变量操作(2)
1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’ ...
- smarty中三种变量的访问方式
在模板中smarty有三种变量,第一种,php分配的变量,第二种配置文件里的变量,第三种,PHP全局数组里的变量,配置文件里变量的访问方式可以是{#bgcolor#},"#"必须紧 ...
- C 构造一个 简单配置文件读取库
前言 最近看到这篇文章, json引擎性能对比报告 http://www.oschina.net/news/61942/cpp-json-compare?utm_source=tuicool 感觉技术 ...
- C# 配置文件读取与修改(转)
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- Smarty中的请求变量和保留变量的使用范例
PHP中提供的超全局数组 Smarty中对应的请求变量 $_GET <{$smarty.get}> $_POST ...
- [spring源码学习]二、IOC源码——配置文件读取
一.环境准备 对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子: package com.zjl; public cl ...
- postman使用之四:切换环境和设置读取变量
postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 切换环境 1.点击界面右上角的 ...
随机推荐
- Best Time to Buy and Sell Stock IV 解答
Question Say you have an array for which the ith element is the price of a given stock on day i. Des ...
- Struts+Spring搭建
前言 本文以Tomcat为j2ee容器,数据库为Sqlserver2005进行说明.Struts版本为2.3.15.3,Spring版本为3.2.5 Spring简介 Spring也是appache下 ...
- Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子) 由其做动态编程时非常有用,必须符合js中的语法,用eval能够执行. var aaa="alert('这是变量中的语句')&q ...
- bootstrap前端开发框架,未来发展趋势
http://v3.bootcss.com/getting-started/Bootstrap 起步 CSS 组件 JavaScript插件 定制 关于 CSS 设置全局CSS样式,基本的HTML元素 ...
- SharePoint 要一个多行文本类型字段为特殊类型的链接
1.插入在测试列表中的多行文本字段.名字叫做Content.例如下面的附图: 2.在Content字段里.加入一个Link.例如以下图: 3.尝试输入Notes格式的Link,例如以下图: 4.点击O ...
- Android Fragment详解(二):Fragment创建及其生命周期
Fragments的生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生命周期可参考下图: 创建片元(Creating a Fragment) To c ...
- 自定义key解决zabbix端口监听取值不准确的问题
今天有一个朋友问到我一个关于zabbix监控tcp端口的问题,明明端口在监听,但是通过net.tcp,listen取值取到的却是0. 经过简单的goole发现这已经是一个历史悠久的问题: 问 ...
- Linux命令之文件与用户权限
1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...
- 带搜索功能,支持绑定对象到节点的TreeView辅助类
特点: 1.支持数叶子节点与对象绑定 2.支持xml导入,且数据类相关的xml可自定义,只和泛型的实现有关 3.支持节点搜索功能,可在树结构上要求只显示部分节点 4.用C#编写,但与平台关联性低,可移 ...
- Spring框架快速入门之简介
Spring是java平台上的一个开源应用框架.它的第一个版本是由Rod Johnson写出来的.Rod在他的Expert One-On- One Java EE Design and Develop ...