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文件
Jan 04 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
php 购物车完整实现代码
Jun 05 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
python list中append()与extend()用法分享
2013/03/24 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
python画微信表情符的实例代码
2019/10/09 Python
python 实现单例模式的5种方法
2020/09/23 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
素质拓展感言
2014/01/29 职场文书
模范教师事迹材料
2014/02/10 职场文书
仓库规划计划书
2014/04/28 职场文书
名人演讲稿范文
2014/09/16 职场文书
文化大革命观后感
2015/06/17 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript