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 相关文章推荐
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 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
laravel 5 实现模板主题功能
2015/03/02 PHP
提高php编程效率技巧
2015/08/13 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
JS实现标签页效果(配合css)
2013/04/03 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
python中的代码编码格式转换问题
2015/06/10 Python
详解Python编程中time模块的使用
2015/11/20 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python日期时间Time模块实例详解
2019/04/15 Python
python使用minimax算法实现五子棋
2019/07/29 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
英语文学专业学生的自我评价
2013/10/31 职场文书
政府门卫岗位职责
2014/04/29 职场文书
售后服务承诺书模板
2014/05/21 职场文书
员工离职通知函
2015/04/25 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书