wfkjxy 发表于 2018-12-15 16:07:25

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

  配置文件 预备知识

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

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

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

  通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可。
# global variables
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00

pageTitle = "Customer Info"

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}来载入,
[*]  通过configLoad()函数进行载入。
  

  配置段落隐藏 [.hidden]

  你可以通过在变量名或段落名前面加上点号(.),来隐藏变量或者整个段落,如[.hidden]。
  这个技巧在你的程序使用配置文件保存一些敏感信息,但这些信息又不希望模板引擎使用时,非常有用。
如果是第三方来对模板进行修改,你也可以保证他们不会在载入配置文件时,读取到这些敏感信息
  

  配置文件从数据库中载入
  如$smarty->configLoad("db:my.conf")。
  

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

  从配置文件获取的变量
  1.可以通过 井号引用起来访问如#hash_marks#
  
  2.通过Smarty变量 $smarty.config来访问

  

  完整举例
  配置文件 my.conf
title='my first web'
bgcolor='white'

name='Mr.Yang'

age=10  模板文件 hello.tpl







  浏览器输出
my first web
Mr.Yang  




页: [1]
查看完整版本: PHP Smarty 模板 读取配置文件变量