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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
php+highchats生成动态统计图
May 21 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
详解PHP发送邮件知识点
May 06 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 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
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery中parents()方法用法实例
2015/01/07 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
小学教师办公室制度
2014/02/03 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
离职感谢信
2015/01/21 职场文书
坎儿井导游词
2015/02/09 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
Go语言怎么使用变长参数函数
2022/07/15 Golang