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 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
深入PHP autoload机制的详解
Jun 09 PHP
php ios推送(代码)
Jul 01 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 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
数据库相关问题
2006/10/09 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
JavaScript 原型与继承说明
2010/06/09 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
写gulp遇到的ES6问题详解
2018/12/03 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
详解django三种文件下载方式
2018/04/06 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
解决django FileFIELD的编码问题
2020/03/30 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
详解Flask前后端分离项目案例
2020/07/24 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
Linux操作面试题
2015/02/11 面试题
口头翻译求职人自荐信
2013/12/07 职场文书
运动会通讯稿150字
2014/02/15 职场文书
团日活动总结范文
2014/04/25 职场文书
校运会口号
2014/06/18 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA