PHP模板引擎Smarty中的保留变量用法分析


Posted in PHP onApril 11, 2016

本文实例讲述了PHP模板引擎Smarty中的保留变量用法。分享给大家供大家参考,具体如下:

在 Smarty 中,有一些保留变量,它们是不需要 PHP 脚本去分配就可以直接使用,即不用使用 $_tpl->assign('var','value') 去分配。

1、在模板中访问页面请求的变量

{$smarty.get.user} == $_GET['user']
{$smarty.post.user} == $_POST['user']
{$smarty.cookie.username} == $_COOKIE['username']
{$smarty.session.username} == $_SESSION['username']
{$smarty.server.REMOTE_ADDR} == $_SERVER["REMOTE_ADDR"]
{$smarty.env.PATH} == $_ENV['PATH']
{$smarty.request.username} == $_REQUEST['username']

2、在模板文件中访问 PHP 脚本中定义的常量和系统常量

{$smarty.const.__FILE__}  //当前执行的 PHP 文件
{$smarty.const.CONST_VAR}  //访问 PHP 脚本中 define 定义的常量

3、在模板文件中获取当前服务器的时间

{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}  == PHP脚本中的 date('Y-m-d H:i:s',time())

4、配置文件在模板中的访问

可以通过 {$smarty.config.配置变量} 来访问配置文件中的模板变量。这样的话,在模板中访问配置文件中的变量就有两种方法:一、{#配置变量#};二、{$smarty.config.配置变量},如果有区域的话,也是如此。

5、获取 Smarty 内建函数 capture 捕获的数据

capture函数的作用是捕获模板输出的数据并将其存储到一个变量里,而不是把它们输出到页面,任何在 {capture name="foo"}和{/capture}之间的数据将被存储到变量$foo中,该变量由name属性指定。在模板中通过 $smarty.capture.foo 访问该变量,如果没有指定 name 属性,函数默认将使用 "default" 作为参数。

6、保留变量 $smarty.foreach

$smarty.foreach 获取 foreach 循环数组的一些信息,比如数组的个数、递增+1……,关于 $smarty.foreach 的使用,详细内容可参考前面一篇《PHP模板引擎Smarty内建函数foreach,foreachelse用法分析》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

PHP 相关文章推荐
加强版phplib的DB类
Mar 31 PHP
php5数字型字符串加解密代码
Apr 24 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
php使用PDO方法详解
Dec 27 PHP
微信支付扫码支付php版
Jul 22 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
php实现微信支付之退款功能
May 30 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 #PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 #PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 #PHP
php实现生成验证码实例分享
Apr 10 #PHP
PHP实现简单实用的分页类代码
Apr 08 #PHP
PHP文件上传类实例详解
Apr 08 #PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 #PHP
You might like
如何开发一个虚拟域名系统
2006/10/09 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
javascript学习之闭包分析
2010/12/02 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Python命名空间详解
2014/08/18 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
用Python配平化学方程式的方法
2019/07/20 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
网络教育自我鉴定
2013/11/01 职场文书
高中体育教学反思
2014/01/24 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
学术会议邀请函
2015/01/30 职场文书
工作证明格式范文
2015/06/15 职场文书
家电创业计划书
2019/08/05 职场文书
无线电通信名词解释
2022/02/18 无线电
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers