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下MAIL的另一解决方案
Oct 09 PHP
php str_replace的替换漏洞
Mar 15 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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 setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue项目实战总结篇
2018/02/11 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python面向对象基础入门之设置对象属性
2018/12/11 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
工商管理专业职业生涯规划
2014/01/01 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
优秀团员自我评价
2015/03/10 职场文书
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers