PHP Smarty 模板 读取配置文件变量

配置文件 预备知识

可以让设计者将全局的模板变量以文件形式管理起来。

其中一个例子是管理模板的颜色值:

通常如果你需要从程序中更改颜色主题,那么你需要找到每个模板文件, 并且修改它们的颜色值。

通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可。

# global variables
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
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

配置文件

配置变量的值

1.可以被引用起来,但不是必须的。

2.可以使用单引号或者双引号。

3.如果有的值会跨度不止一行的,那么需要用三引号(""")把它们括起来。

注释  # (井号)

你可以将任何形式的注释放到配置文件中,但这不是有效的配置文件语法。

使用# (井号) 来作为注释行的开头。

段落  [ ]

段落的名字用[方括号]括起来。

段落名称可以是任意字符,但不包括[
]符号。

最顶部的四个值是全局变量,也就是不在段落内的变量。 这些全局变量将总是被载入。

当一个特定的段落被载入,那么段落的变量以及全局变量都会被载入。

如全局变量和段落变量都有同样的变量,那么将使用段落的变量。

如有相同的两个变量在同一个段落,最后一个将会被使用,除非 $config_overwrite设置被关闭。

段落载入  config_load    section

<{config_load file="../config/my.conf " section = "Customer"}>

配置文件载入

  1. 内置的函数 {config_load}来载入,
  2. 通过configLoad()函数进行载入。

配置段落隐藏 [.hidden]

你可以通过在变量名或段落名前面加上点号(.),来隐藏变量或者整个段落,如[.hidden]

这个技巧在你的程序使用配置文件保存一些敏感信息,但这些信息又不希望模板引擎使用时,非常有用。
如果是第三方来对模板进行修改,你也可以保证他们不会在载入配置文件时,读取到这些敏感信息

配置文件从数据库中载入

$smarty->configLoad("db:my.conf")

============================================================

从配置文件获取的变量

1.可以通过 井号引用起来访问如#hash_marks#

<{#title#}>

2.通过Smarty变量 $smarty.config来访问

<{$smarty.config.title}>

完整举例

配置文件 my.conf

title=‘my first web‘
bgcolor=‘white‘

[index]
name=‘Mr.Yang‘

[list]
age=10

模板文件 hello.tpl

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<{config_load file="../config/my.conf " section="index"}>
<body bgcolor=‘<{ #bgcolor# }>‘>
<h3><{#title#}></h3>
<h3><{$smarty.config.name}></h3>
</body>

浏览器输出

my first web
Mr.Yang
时间: 2024-10-05 10:54:09

PHP Smarty 模板 读取配置文件变量的相关文章

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

python读取配置文件 变量 ConfigParser模块

Python 读取写入配置文件很方便,可使用内置的 configparser 模块配置文件:config.ini [oppo] platformName = Android platformVersion = 6.0 deviceName = weiruoyu appPackage = com.sina.weibo appActivity = .SplashActivity url = http://127.0.0.1:4723/wd/hub [mysql] host=127.0.0.1 por

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/> 字符串:<{

Smarty模板引擎技术(一)

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

第八十七天请假 PHP smarty模板配置以及简单的调用方式

smarty模板的配置文件 <?php define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录 require ROOT.'smarty/Smarty.class.php'; //加载Smarty类文件 $smarty = new Smarty(); //实例化Smarty对象<br> $smarty->setTemplate

PHP——smarty模板(第一天)

smarty.class.php 主要的东西放在类里面templates 放模板templates_c 放缓存 类里面 $smarty->assign("author","feng and meizi")$smarty->display("test.tpl") 请求的是test.php 找的是test.tpl文件 test.tpl:<{$author}> test.tpl文件将所有内容替换完成之后 <div>&

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

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

Smarty从配置文件读取的变量

从配置文件读取的变量 配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到) 第二种语法在变量作为属性值并被引号括住的时候非常有用. (译注:举个例子 {include file="#includefile#"} 这样#includefile#将被当作字符处理,而不表示配置文件变量, 但可以这样表示 {include file="`$smarty.config.includefile`"

[smarty] 在smarty模板中使用smarty变量初始化 javascript 变量的问题

// 总结:// 1/ 在smarty 模板文件中,使用从php中assign过来的smarty变量,一定需要使用双引号或单引号来括住smarty变量,如:var title="<!--{$title}-->";// 2/ 如果不使用引号括住,在smarty变量值为字符串的情况下,那么该字符串在javascript中会被作为javascript变量来解释,所以就会产生错误.// 3/ 变量值是数字,那么则不会产生错误// tpl 文件 <script> if(n