php smarty模板引擎的6个小技巧


Posted in PHP onApril 24, 2014

下面本文将以具体的例子一一分析:

capture标签

capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。如下例子:

{capture name="test"}
<img src="testimg.jpg">
{/capture}
<div class="image">
{$smarty.capture.test}
</div>

说明:在{capture name="test"}和{/capture}之间的内容被存储到变量$test中,该变量由name属性指定.在模板中通过 $smarty.capture.test 访问该变量.如果没有指定name 属性,函数默认将使用"default" 作为参数,这一点类似Jquery中的clone方法。

config_load标签

config_load可以直接将文件中的内容读取出来,这样可以省掉assign这一步,如下使用示例:

test.csv 文件:

pageTitle = "config_load_test"
bodyBgColor = "#eeeeee"
img = "girl.jpg"
width="100"
height="100"

则模板 index.tpl 文件中可以如下引用以上 test.csv 文件:

{config_load file="test.csv"}
<html>
<title>{#pageTitle#}</title>
<body bgcolor="{#bodyBgColor#}">
<img src="{#img#}" width="{#width#}" height="{#height#}">
</body>
</html>

注:上述过程中如果出现这样的问题Warning: Smarty error: unable to read resource, 请查看一下,你的test.csv是不是放在smarty的配置目录中,默认配置目录是configs 目录。

php标签

 当你习惯了assign后,你有没有想过,在模板文件里面直接写php代码呢,虽然非常不建议这么做,但有时候迫于业务的需求不得不这样干的时候该肿么办呢?看看下面这个例子:

{php}
global $result;
foreach($result as $key=>$value){
    echo "key=$key,value=>$value<br>";
}
{/php}

strip标签

strip标签的作用是去除标签内的空格和回车,我自己感觉这个标签还是挺有用的,可以压缩最终输出的html格式,想要看效果的话,看看本站的源代码就知道了,是不是很酷,呵呵:

{strip}
<div>
    <font color="red">strip</font>
    <span>
        <div>php smarty strip 压缩html输出,www.phpernote.com 看源码效果</div>
    </span>
</div>
{/strip}

fetch标签

fetch标签和php里面的函数 file_get_contents 功能差不多,都可以把文件中的内容读出来,并且可以将读出来的结果以字符串的形式赋值给某个变量,如下使用案例:

{fetch file="./aaaa.txt" assign="result"}
{if is_array($result)}
<b>is array</b>
{else if}
<b>not array</b>
{/if}

使用常量

在php中使用 define 定义的常量可以在smarty模板中直接使用

使用方法如下:

{$smarty.const.你定义的常量名}

 

PHP 相关文章推荐
php中去除所有js,html,css代码
Oct 12 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
PHP使用memcache缓存技术提高响应速度的方法
Dec 26 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
TP5多入口设置实例讲解
Dec 15 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 #PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 #PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 #PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 #PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 #PHP
php获取中文拼音首字母类和函数分享
Apr 24 #PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 #PHP
You might like
PHP 中的类
2006/10/09 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
PHP反射机制用法实例
2014/08/28 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
基于jquery自定义图片热区效果
2012/07/21 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
python中__call__内置函数用法实例
2015/06/04 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
料理师求职信
2014/01/30 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
车辆委托书范本
2014/10/05 职场文书
申报优秀教师材料
2014/12/16 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书