php之smarty学习二
2015-12-19 08:43
495 查看
Smarty的引入
Smarty是一个类,引入过程与普通的类没有区别
1:include,require包含此文件
2:实例化
Smarty的配置
$template_dir='templates';//模板文件所在的目录
$compile_dir='templates_c';//编译后的文件所在的目录
$config_dir='configs';//配置文件的存放目录,允许独立的配置文件存在,并且配置文件如果多了,允许单独存放在一个目录里
$cache_dir='cache';//缓存文件的存放目录
plugins_dir=array('plugins','p2','p3');//插件目录(如果自行开发插件,可能会用到)
left_delimiter='{';//标签的左分界符
right_delimiter='}';//标签的右分界符
caching=0/1;是否开启缓存
cache_lifetime=3600秒;//缓存的生命周期
Smarty的赋值
1:$smarty->assign('key',value);
发生的变化$smarty->_tpl_vars[key]=value;
2:如果assign($arr)中的第一个参数是数组,则会循环数组,把数组中的每个单元追加到_tpl_var属性上;
3:append追加赋值
如果需要把多个值,赋给同一个标签变量,不必把多个值形成数组后然后赋值,可以通过append往一个标签反复追加赋值
例如:
$smarty->append('goods','自行车');
$smarty->append('goods','火车');
此时,推论$smarty->_tpl_vars['goods']=array(自行车,火车);
如果append进去的值是数组,并且第三个参数merge参数为true,则会把数组单元逐个添加到goods数组里去。
$smarty->append('goods',array('name'=>'刘备','age'=>28),true);
此时,$smarty->_tpl_vars['goods']=array(自行车,火车,'name'=>'刘备','age'=>28);
如果是$smarty->append('goods',array('name'=>'刘备','age'=>28),false);
此时,$smarty->_tpl_vars['goods']=array(自行车,火车,array('name'=>'刘备','age'=>28));
Smarty模板中对变量的引用
变量来源:
1:assign赋值得到的变量,存储在_tpl_vars属性中
2:$smarty系统变量,对于cookie,session,get,post,$_SERVER等信息,存储在_smarty属性中,smarty会自动捕捉,并保存起来,形成系统变量,可以直接用标签来引用
3:从配置文件读取的变量,存储在_config属性中
1.1:对于assign赋值得到的变量,对于字符串,数值型,直接通过$标签名来引用
1.2:对于数组变量,如果键是字符串,则用$标签名.键。如果键是数字,这用$标签名[键]。
1.3:对于对象方式,用$标签名->属性名来引用对象的属性值,用$标签名->方法()来调用对象的方法的返回值
2.1:smarty中系统的变量,以$smarty开头,例:$smarty.now,被解析成time();$smarty.get.key被解析成$_GET[key]。$smarty.const.常量名被解析成echo 常量名.
3.1:从配置文件得到的变量
配置文件可以用来存储常用且很少变的数据,比如网站名,备案号,通过配置文件得到这些信息,不必去读取数据库,可以省去一些数据库的开销
配置文件的写法:
配置项 1=值 1
配置项 2=值 2
配置文件的载入:
{config_load file="xxx.conf"},在模板里的最开始地方引入
配置文件中变量的引用:
$smarty.config.配置项
或者 #配置项#
Smarty是一个类,引入过程与普通的类没有区别
1:include,require包含此文件
2:实例化
Smarty的配置
$template_dir='templates';//模板文件所在的目录
$compile_dir='templates_c';//编译后的文件所在的目录
$config_dir='configs';//配置文件的存放目录,允许独立的配置文件存在,并且配置文件如果多了,允许单独存放在一个目录里
$cache_dir='cache';//缓存文件的存放目录
plugins_dir=array('plugins','p2','p3');//插件目录(如果自行开发插件,可能会用到)
left_delimiter='{';//标签的左分界符
right_delimiter='}';//标签的右分界符
caching=0/1;是否开启缓存
cache_lifetime=3600秒;//缓存的生命周期
Smarty的赋值
1:$smarty->assign('key',value);
发生的变化$smarty->_tpl_vars[key]=value;
2:如果assign($arr)中的第一个参数是数组,则会循环数组,把数组中的每个单元追加到_tpl_var属性上;
3:append追加赋值
如果需要把多个值,赋给同一个标签变量,不必把多个值形成数组后然后赋值,可以通过append往一个标签反复追加赋值
例如:
$smarty->append('goods','自行车');
$smarty->append('goods','火车');
此时,推论$smarty->_tpl_vars['goods']=array(自行车,火车);
如果append进去的值是数组,并且第三个参数merge参数为true,则会把数组单元逐个添加到goods数组里去。
$smarty->append('goods',array('name'=>'刘备','age'=>28),true);
此时,$smarty->_tpl_vars['goods']=array(自行车,火车,'name'=>'刘备','age'=>28);
如果是$smarty->append('goods',array('name'=>'刘备','age'=>28),false);
此时,$smarty->_tpl_vars['goods']=array(自行车,火车,array('name'=>'刘备','age'=>28));
Smarty模板中对变量的引用
变量来源:
1:assign赋值得到的变量,存储在_tpl_vars属性中
2:$smarty系统变量,对于cookie,session,get,post,$_SERVER等信息,存储在_smarty属性中,smarty会自动捕捉,并保存起来,形成系统变量,可以直接用标签来引用
3:从配置文件读取的变量,存储在_config属性中
1.1:对于assign赋值得到的变量,对于字符串,数值型,直接通过$标签名来引用
1.2:对于数组变量,如果键是字符串,则用$标签名.键。如果键是数字,这用$标签名[键]。
1.3:对于对象方式,用$标签名->属性名来引用对象的属性值,用$标签名->方法()来调用对象的方法的返回值
2.1:smarty中系统的变量,以$smarty开头,例:$smarty.now,被解析成time();$smarty.get.key被解析成$_GET[key]。$smarty.const.常量名被解析成echo 常量名.
3.1:从配置文件得到的变量
配置文件可以用来存储常用且很少变的数据,比如网站名,备案号,通过配置文件得到这些信息,不必去读取数据库,可以省去一些数据库的开销
配置文件的写法:
配置项 1=值 1
配置项 2=值 2
配置文件的载入:
{config_load file="xxx.conf"},在模板里的最开始地方引入
配置文件中变量的引用:
$smarty.config.配置项
或者 #配置项#
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料